Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   260 / 1320
(#) gyengus hozzászólása Aug 11, 2008 /
 
Sziasztok!

Van egy házi linux szerverem. Szeretném eltüntetni mellőle a 14"-os crt monitort és a billentyűzetet. Ezért arra gondoltam, hogy kirakom a konzolt soros portra. De nincs szabad soros portom.

Ezért arra gondoltam, hogy fogok 1 picet cdc firmware futna rajta. A programnak annyit kéne csinálnia, hogy amit kap usbn azt kiküldi a soros portjára és fordítva. A cdc firmware-es picet soros portnak látja a Linux.

Szerintetek ez így megoldható? Működhet egyfajta átjátszóként a pic?

PIC18F14K50-t néztem ki ChipCad-nál 400+áfa. Ezen futna a cdc firmware?

Előre is köszönöm a válaszokat!
(#) potyo válasza gyengus hozzászólására (») Aug 11, 2008 /
 
Szerintem mennie kell a dolognak.
(#) szilva válasza gyengus hozzászólására (») Aug 11, 2008 /
 
Valószínűleg működne, de nem célszerűbb ilyesmire egy USB/soros átalaklító chipet használni? Én most FT232RL-ekkel dolgoztam, nagyon kellemesen használhatók, igaz, Linux alól nem próbáltam (de úgy tudom, teljes a támogatása). Picit drágább (640+áfa, sziintén Chipcad), de nem kell firmwareírással bajlódni.

Azért az a gyári CDC fw csak egy keret, kellene még abba belenyúlni eléggé, pl. a soros port kezelésének oldalán. Ráadásul nem emlékszem, hogy a gyári keretrendszer fel van-e készítva ezekre az új USB-s chipekre.
(#) vtnagy hozzászólása Aug 11, 2008 /
 
Nos, megint én.
Nem túl sokat aludtam, így bocsi, ha kicsit hülyén írok

Egész este/hajnalban próbáltam rendbeszedni az általam írt kódot.
Egyelőre úgy tűnik, működőképes, mert MPLAB-ban nem jelez ki hibát, de nem tudom, ez a plugin mennyire megbízható.

Egész szépen fel van kommentezve a kód, szerintem túl sokat nem kell magyaráznom a működésén.

Tudom, ráférne egy kis optimalizálás, de egyelőre nem túl nagy a kód, ezért szerintem még ezt felesleges megcsinálni.

Mellékeltem a jelenlegi programkódot.


Itt hogyan tudom használni a sleep funkciót?
  1. #asm
  2. SLEEP
  3. #endasm

Ha így csinálnám, úgy jó lesz, vagy van külön parancs is erre CCS-C-ben?
Ezt egy következő funkcióként szeretném használni.
Ha a PIC sleep módban van, akkor nem tudom, hogy, ha növelek benne egy változót, vagy valamit, felébred-e, szóval, ha lehet, erre tanácsokat szeretnék kérni, ezt hogyan is kell használni.

Köszönöm a segítséget.

main.c
    
(#) szilva válasza vtnagy hozzászólására (») Aug 11, 2008 /
 
A sleep egy olyan alvó állapot, amikor a processzor nem csinál semmit. Tehát változókat sem növelget, alszik, és vár arra az eseményre, ami ebből az állapotából felébreszti.

Meg kell nézni az adatlapot, hogy sleep-ből mire és hogyan tud felébredni a CPU. Alapvetően olyan eseményre, ami kívülről, a CPU-tól függetlenül keletkezik (pl. portláb állapotváltozása), illetve ha a Timer1 külső órajelről jár, akkor annak túlcsordulása is.

A belső számlálók és ilyesmik a sleep alatt le vannak állítva, ezért azokkal nem lehet felébreszteni alvásból a CPU-t. Természetesen a watchdog működik alvás közben is, ezért ha azt használod és leketyeg, akkor felébreszti vagy reseteli a CPU-t, ezt szintén adatlapból kell megnézni, hogy mire képes.

A sleep után érdemes vagy két "nop"-ot is betenni, úgy elmékszem, hogy a sleep utasítás végrehajtása előtt az első, sleep utáni utasítást már beolvassa a proci, így ébredéskor bizonyos feltételek esetén elveszhet egy utasítás - a "nop"-ért nem kár

A dolgok c-beli megvalósításáról nem sokat tudok mondani.
(#) vtnagy válasza szilva hozzászólására (») Aug 11, 2008 /
 
Ezt a változónövelésest úgy értem, hogy van 2 gomb, amivel tudok egy változót növelni/csökkenteni.
Ezek az RA0 és RA1-es lábra vannak bekötve.
Tehát, ha sleep-be rakom a PIC-et, és utána megnyomom e 2 gomb közül valamelyiket, úgy felébredne, és csinálná, amit kell?

Úgy lenne, hogy a sleepet egy külön effectrészbe raknám, tehát nem kell semmit sem folytasson, csak, ha megnyomom a 2 gomb közül valamelyiket, akkor az utána/előtte levő effectet kezdje el "lejátszani"
(#) MPi-c válasza vtnagy hozzászólására (») Aug 11, 2008 /
 
Idézet:
„Ha a PIC sleep módban van, akkor nem tudom, hogy, ha növelek benne egy változót, vagy valamit, felébred-e,”

Hát akkor először magát a sleep-et kell megnézned. Pl:Bővebben: Link
Aztán meg a ccs honlapjáról is letölthető a kezelői leírás amiben a sleep használata benne van. Egyébként, ha a PCWHD-t telepítetted fel, akkor az MPLAB-ből is elérhető a ccs c súgója, ami megegyezik a fenti leírással.
(#) MPi-c válasza vtnagy hozzászólására (») Aug 11, 2008 /
 
Idézet:
„Tehát, ha sleep-be rakom a PIC-et, és utána megnyomom e 2 gomb közül valamelyiket, úgy felébredne, és csinálná, amit kell?”


Persze, csak akkor külső megszakítást kell alkalmaznod, az ébreszti a PIC-et.
(#) cpumaster válasza potyo hozzászólására (») Aug 11, 2008 /
 
Hello! Biztosan jó mert a 16F877-et meg tökéletesen égeti. Nemtudom mit tegyek hogy bennemaradjon a progi visszaolvasásnál is és ne egy csomó 0 legyen ott. Ha winpic-ben átírom az osc-config értéket és minden más 3FFF úgy beégetem és oké azt visszaolvasom és bennemarad. Megnyitom a hex-t és égetem de az osc configot ilyenkor már nem hagyom hogy átírja, hanem maradjon amit beégettem előtte. Visszaolvasásnál minden 0 lesz de az osc config megmarad a memória utólsó részén,egyedül az nem lesz 0000. Nemtudom mondta itt valaki a belső resetet...ez melyik? PUT? Felteszem mégegyszer a konfigurációs beállításaimat is és hátha abból ki vagy be kell kapcsolni valamit. az options-nál próbáltam azt a MCLR=VSS-t kipipálva is meg anélkül is de nemtudom hogyan kellene álljon igazából.
(#) potyo válasza cpumaster hozzászólására (») Aug 11, 2008 /
 
A Code Protect-et kapcsold ki!
(#) cpumaster hozzászólása Aug 11, 2008 /
 
Miután írtam pont azt még mondom kikapcsolom és azt még kipróbállom. Jó lett! Köszönöm azért mindenki fáradozását. Még egy dolog: akkor ennek a proginak mind1 mit írok be osc-configba? Nem használja? Mert beírtam oda most 347C-t. Az jó úgy?
(#) potyo válasza cpumaster hozzászólására (») Aug 11, 2008 /
 
(#) Müszi hozzászólása Aug 11, 2008 /
 
Sziasztok!

Lenne egy kérdésem a Vicsys féle hőmérővel kapcsolatban: Használható-e a HEStore-n kapható LCD modul a hőmérő kapcsolásba?

Előre is köszönöm: Müszi
(#) gyerek67 hozzászólása Aug 11, 2008 /
 
Szeeerbusztok!
Mi a különbség abban, ha egy 16F877 erre hivatott lábait használom soros portnak, illetve ha másikat választok?
(#) lidi válasza gyerek67 hozzászólására (») Aug 11, 2008 /
 
a hw sorosport csak az "arra hivatott" lábakkal működik. Másikkal nem tudod használni, csak esetleg soft uart-al.
(#) gyerek67 válasza lidi hozzászólására (») Aug 11, 2008 /
 
Pl. CCS-C lehetővé teszi, hogy definiáljam, ki lesz a TX, RX. Ezáltal több soros portot is tudok kezelni egy PIC-kel?
(#) lidi válasza gyerek67 hozzászólására (») Aug 11, 2008 /
 
Bár a ccs-t nem ismerem semennyire, így láttatlanban igen, tudsz egy hw-eset használni, plusz mellé még egy szoftosat.
(#) googa hozzászólása Aug 11, 2008 /
 
Sziasztok! A "#262299" hozzászólásomban felvetett kérésemre senki sem tud reagálni, vagy elnyomtátok más egyéb hasznosság miatt? Légyszi!
(#) Müszi válasza Müszi hozzászólására (») Aug 11, 2008 /
 
Senkinek sincs infója a kijelző felhasználhatóságáról ebben az áramkörben?
(#) gyengus válasza szilva hozzászólására (») Aug 11, 2008 /
 
Köszönöm a választ!
Lehet, hogy célszerűbb átalakító chipet használni, de azokat nem ismerem és úgy gondolom nem kéne olyan bonyolult firmwaret írni a picre. A cdcről biztosan tudom, hogy működik Linux alatt.

Azért néztem ki ezt az új picet, mert olcsó és nincs túl sok lába. Ilyen egyszerű áramkörbe ne rakjak már 4550-et. De most elbizonytalanítottál. Azt vágom, hogy simán nem lehet rátenni a cdc-t, legalább az io_cfg.h-t módosítani kell.

Most nézem, van új usb framework benne cdc . Így már jobbak az esélyeim. Támogatja a 18F14K50-et.

potyo: köszönöm a gyors választ!

Szerk.: A CDC - Serial Emulator a leírása alapján az ami nekem kell:
In this demo the CDC firmware acts like a USB to RS232 converter. Data sent or received on the USB port will be passed to/from the RS232 port.
(#) Blint válasza Müszi hozzászólására (») Aug 11, 2008 /
 
Szia!
Fog működni, HD44780 kompatibilis, és Vicsys-é is az, csak a lábkiosztásra figyelj, nem feltétlenül ugyan az!

Üdv, Blint
(#) Müszi válasza Blint hozzászólására (») Aug 11, 2008 /
 
Ezt akartam tudni, köszönöm szépen
(#) szilva válasza googa hozzászólására (») Aug 11, 2008 /
 
Szóval: a piezo simán ráköthető bármelyik kimenetre, az tulajdonképpen csak egy kapacitásként fog viselkedni. Minden átpolarizáláskor "koppan" egyet. Ahhoz, hogy sípolást hallj rajta, a másodpercenkénti rezgésszám kétszeresével kell az adott kimeneten polaritást váltani. A csippanáshoz a sípolást időben korlátozni kell.

Én c-ben és egyéb okos nyelvekben nemigen vagyok otthon a mikrovezérlők terén, asm-ben ez pár egymásba ágyazott időzítési ciklus, hacsak nem használsz fel valamilyen hardver modult. A rezgéskeltéshez célszerű pl. pwm kimenetet használni, a csippanás hosszának belövéséhez pedig valamilyen timert.

Ha megpróbálod megírni a kódot, és esetleg elakadsz, abban biztosan szívesen segítenek itt sokan, de kicsit visszatetsző dolog arra várni, hogy helyetted valaki majd megírja.
(#) szilva válasza gyengus hozzászólására (») Aug 11, 2008 /
 
Aha, ezek jó hírek. Ha belevágsz, és sikerül valamileyn eredményre jutni, akkor szívesen olvasnék róla (és gondolom más is)!

Ezt az új USB-s PIC-et én is kinéztem magamnak, de legutóbb, amikor akartam venni, akkor még nem volt. Az új CDC-s fw-t meg megnézem majd én is, mert kifejezetten érdekel.
(#) gyerek67 válasza lidi hozzászólására (») Aug 11, 2008 /
 
No, akkor mi a különbség a soft USART, meg a hard között?
(#) potyo válasza gyerek67 hozzászólására (») Aug 11, 2008 /
 
Az, hogy a hardveresnél csak beküldöd a bájtot a kimeneti pufferbe, és a hardver a beállított sebességgel kilépteti a lábon az adatot teljesen függetlenül, hogy a processzor mit csinál. A szoftveres uart meg szoftverből billegteti a kimeneti lábat, mint amikor egy ledet villogtatsz.
(#) gyerek67 válasza potyo hozzászólására (») Aug 11, 2008 /
 
Értem. Tehát, ha a procinak semmi más dolga nincs, mint a soros portok kezelése (nem kell kapkodni!), akkor több (4-5) portot is simán le tudok kezelni.
(#) Norberto válasza gyerek67 hozzászólására (») Aug 12, 2008 /
 
Egy témábavágó link, igaz, nem pont PIC mikrovezérlőhöz... de talán jól jöhet...
(#) gyerek67 válasza Norberto hozzászólására (») Aug 12, 2008 /
 
Már biztos álmos voltál, mert lemaradt a link Norberto!
(#) potyo válasza gyerek67 hozzászólására (») Aug 12, 2008 /
 
Azért annyira nem sima az a simán, vannak ott korlátok bőven. Ha nem CCS-ben, hanem asm-ben programoznál, akkor te is látnád...
Következő: »»   260 / 1320
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem