Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Bekapcsolás után vársz elég ideig, hogy az LDC-n is beálljanak a tápfeszek? Lehet a pic gyorsabban indul.
Az előbb linkelt adatlap 44-es oldalán a 15ms várakozást követően mit mutat, mit kell az LCD lábaira írni? És ehhez képest te mit írsz?
Sziasztok. Építettem egy teljesítménymérő kis műszert PIC18F252-vel (vagy PIC18F2620-al).
A programot megmutatom, mit sikerült összehozni. Viszont a kérdésem az lenne, hogyan lehet megvalósítani úgy, hogy ha elértem a 800W határt akkor kezdjen el villogni a kijelző oly módon, hogy ne lassítsa le a delay rutin az AD konverter olvasását és a kijelző frissítést?!
Annyiszor elmondtuk már a különféle pices témákban, hogy delay-t nem szabad időzítésre használni. Így tehát a válasz az, hogy rosszul van a programod tervezve, át kell tervezned olyanra, hogy ne használjon delayt, főleg nem ilyen hosszú idejűeket. Iránymutatás pl. itt: Link
Az a baj, hogy nem ismerem még az időzítőket, és megszakításvezérlőket... Köszönöm a választ, delay elfelejtve Ma is Tanultam valamit.
Akkor itt az alkalom, hogy megismerkedj velük
A power-on után min. 15ms-t kell várni az adatlap szerint. Én várok 16ms-ot.
Utána az lcd felső 4 lábára 0011-et kell írni. De mivel nekem a lábkiosztások fordítva vannak, vagyis: PIC RB7->LCD4 PIC RB6->LCD5 PIC RB5->LCD6 PIC RB4->LCD7 Ezért hogy kimenjen a 0011, 1100-t kell írni, vagyis 0x0c. Egyéb ötlet?
A 15ms-ot azután kell várni, hogy a tápfesz meghaladja 4,5V-ot, a PIC már 2V-tól működik.
Nyugodtan rakjál be 0,5-1s várakozást, vagy addig csinálj mást (csak tesztnek próbáld ki).
Na hát ezt eddig nem írtad, hogy fordítva vannak a lábak...
Viszont ahogy nézem most tovább a kódot, hiányzik az, hogy még úgy veszed, hogy 8 bites üzemben van, és küldöd neki a parancsot, hogy váltson át négy bitesre. Tehát kellene még egy
Meg némi várakozás még elé, azt nézd meg az adatlapból, hogy mennyi.
A config bitekben ott a bor. Elvileg 4v-ra konfigurálva.
Bocsánat, azt hittem az lcd_init-ből kiderül.
Ott meg kell cserélgetni a biteket. Akkor ezek szerint még egyszer ki kell küldenem egy 0x0c-t?
Nem 0x0C-t, hanem esetedben 0x04-et. Nézd meg a tegnap linkelt adatlap 46. oldalán a folyamatábrát és a hozzá tartozó magyarázatot. Kicsit el vannak csúszva magasságban egymástól, de ha alulról számolod, akkor összerakható, hogy mi mihez tartozik.
Igen, igazad lehet. Amint tudom, kipróbálom és jelzek. Egyenlőre köszönöm!
Tud abban valaki segíteni hogy miért áll meg a 16f1937-em amikor uart-on adatot küldök be neki?
Nem áll az meg, csak a megszakítási rutint hajtja vége ismételten, mivel az nem törli a kiváltó okot. Meg kell állapítani, hogy a vétel hibás-e, ha hibás el kell tiltani a vevőt, ki kell olvasni a vételi regisztert és újra kell engedélyezni a vevőt.
Urak, segitseget kernek.
USB-s Keyboardot szeretnek kesziteni, pontosabban par billentyut elkuldo eszkozt PIC-bol. 18F25k50-essel dolgozom, igy nem kell kulso kristaly az USB-hez. USB powered az eszkoz. Egy USB-s Joysticket mar keszitettem vele, igy ertetlenul allok, hogy keyboardot nem sikerul (allitolag a joy a kiindulasi alapja). HID eszkozkent felismeri az eszkozkezelo hardver reszeben, de nem kuld semmit. Ha egy rendes USB billentyuzetet csatlakoztatok, azt felismeri USB-s billentyuzetnek. A neten kutakodtam mar, mintapeldakat probaltam atalakitani, nem jott ossze. Igy ket nap utan hozzatok fordulok: Egy nagyon egyszeru peldaprogit szeretnek kerni, ami mondjuk egy A-betut elkuld billentyukent mukodve. Minel egyszerubb legyen, mert erteni is szeretnem, nem csak modulokat pakolni egymas melle. En ugyan assemblyben dolgozom, de johet C-s forras is. XP a rendszerem. Annyit kerek, hogy netes cimeket ne ajanlgassatok, mert az osszeset felkutattam mar. Elore is koszonom.
Az mplab X nálatok sem olyan kényes mint a nagy testvére?
Az X-el simán felprogramoztam ICSP-n azt a 16F628A-t amire az mplab 8.92 "Target device doesnt match" errort dobott.
Ott valami más volt a hiba oka, a céleszközt a programozó "deríti fel" !
Hát ez az.
Holnap letesztelem még egyszer mindkettővel.
Hello!
Van egy darabka műgyanta lapom rajta rézcsíkokkal, meg alkatrészekkel (PCB). 2 Pic van rajta elhelyezve. Egy 16f628a, és egy 16f690. Az előbbi külső 4MHz kvarccal, fel is programoztam ICSP-n. Megy frankón. A 690-es belső oszival 8MHz-re állítva. Felprogramozás ok, de ha bekapcsolom a ketyerét akkor nem megy. Ugyanazon tápról mennek. Kérdés, hogy zavarhatja-e a másik PIC ami miatt folyton resetelődik, ez esetben mi segíthetne rajta? Ha nem ez, akkor vagy kinyírtam, vagy valami konfig hiba lehet még, mert a program szimuátoron megy frankón. A hozzászólás módosítva: Szept 25, 2013
Itt a konfig rész.
A hozzászólás módosítva: Szept 25, 2013
SCS bit. Holnap Letesztelem. A hozzászólás módosítva: Szept 25, 2013
Sziasztok,
az érdekelne, hogy általánosságban, processzortól függetlenül az UART modulnál a baud rate generáláshoz csak az adatbitek vannak figyelembe véve vagy a keretbitek (start, stop) is? Tehát a kiszámított érték az 8 vagy 10 bitre vonatkozik.
A kiszámított érték EGY bitre vonatkozik. 19200bps sebességnél egy bit (beleértve a start és stop bitet is) szélessége 1/19200=5,2us
Ok. Koszonom szepen.
Tehat a 8 adatbithez es 1 start- ill. 1 stop bithez tartozo ertek nem ugyan olyan atviteli sebesseget fog eredmenyezni mint ha 9 adat bites modot valasztok 1 start- illetve 1 stop bittel?
Az keretbitek számának változtatása a tényleges adatforgalom, az egy másodperc alatt átvitt bájtok számát csökkenti. Egy bit ideje ugyan változatlan, de egy bájthoz több idő (adatbit) tartozik.
Az adatátviteli sebességet egy bit ideje alapján nevezzük el, nem az átvitt adatmennyiség alapján. A hozzászólás módosítva: Szept 27, 2013
Ok. Nekem azt kene kideritenem, hogy 833,3uS alatt attudok e kuldeni 8 adatbitet 9600 bits/s mellett.
Keret: 1 start bit + 8 adatbit + 1 stop bit = 10 bit. Tehat 1s alatt 9600 bitet lehet atvinni. Nekem 833,3us kell ami 9600*833,3us = 7,99 bit. Vagyis nem viheto at. Helyes a gondolatmentem?
Nem teljesen értem a gondolatmenetedet. Honnan jön a 833,3us idő? Mert ez pontosan annyi idő, ami alatt a 8 adatbit átmegy. De jelen esetben egy teljes bájt átvitele, mivel van start és stop bit is, 25%-al több időt igényel, tehát 1041,67us-ot.
19200bps-t nem lehet használni? |
Bejelentkezés
Hirdetés |