Fórum témák
» Több friss téma |
WinAVR / GCC alapszabályok: 1. Ha ISR-ben használsz globális változót, az legyen "volatile" 2. Soha ne érjen véget a main() függvény 3. UART/USART hibák 99,9% a rossz órajel miatt van 4. Kerüld el a -O0 optimalizációs beállítást minden áron 5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás 6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et Bővebben: AVR-libc FAQ
12V-----ellenallas - 1k --------Proclab-----Zener 5V1----GND
5V1 zenerrel paralell egy 10K ellenallas. Ha a12v helyen 12V van, a proclabon 5V. Ha nincs 12V, akkor az 10k GNDre huzza.... De a zenert ha elhagyod, akkor sima ellenallasosztoval is jatszhatsz. itt a 12V mennyire 12? Auto? (ott lehet 14,4V is, és bekapcsolaskor az induktibv tuskek is. Igy a 10K-val paralell 100nF kondi es / vagy PKE51 jelu szupresszort (?).
Én a 12V-ot egy ellenállással egy tranzisztorka bázisára kötöttem, emitterét a földre, kollektorát a proci lábára. Így a bejövő jel leföldeli a lábat. Természetesen felhúzó ellenállás belsőleg bekapcsolva.
Szoftveresen megadható, hogy tápot vagy földet, azaz "1"-et vagy "0"-át akarsz érzékelni.
Sziasztok
A következő bascom kódot hogyan kell modositani hogy felvillantson egymás után 3 ledet amik a port.0, port.1 és port.2 lábakra vannak kötve: $regfile = "m168def.dat" $crystal = 16000000 Config Portd = Output Do Portd = 255 Waitms 500 Portd = 0 Waitms 500 Loop End A válaszokat előre is köszönöm.
do
rem bekapcsoljuk a 0-ást set portd.0 waitms 500 rem kikapcsoljuk a 0-ást reset portd.0 set portd.1 waitms 500 reset portd.1 loop
Azthiszem értem, hogy mire gondolsz.
Lejjebb "Sir-Nyeteg" írta is, hogy autóba lesz-e. Igen, ezért gondoltam a tranzisztoros megoldásra, hogy a 12 (vagy esetenként akár 14,4V) csak a tranyót kapcsolgassa amin át egy 7805 -től kapott stabil 5V-ot kaphatna max a proci lába. Egyébként ezt a megoldást esetleg ha nem túl nagy kérés le tudnád rajzolni, és fel tudnád tenni a rajzot valamilyen "köz-kompatibilis" formátumban (pl képként). Köszi! Üdv! Barbár
Az általad írt programozási oldalát is kezdem érteni a dolognak (nagyjából legalábbis).
Megkérhetnélek Téged is, h az általad elképzelt kapcsolásról egy rajzot fel tudnál tenni esetleg? Plusz ha nem okoz gondot betennél egy néhány soros kis kódot is ahol ottvan, h a felhúzóellenállást hogyan kell bekapcsolni, és utána egy if() elágazásban, hogyan tudom megvizsgálni, h a megfelelő láb éppen IGEN vagy NEM jelet kapott-e. Köszönöm előre is! Üdv! Barbár
Mindezek megtalálhatóak Topi "Nyolc lábbal" cikkében, illetve ATtiny weboldalán, én innen másolgatom ki a kódokat. ![]()
Köszi mindenkinek a "helpeket" (szép magyarsággal)
![]() Amint lesz egy kis időm (tehát héfő reggel után), megcsinálom a próbaáramkört, aztán visszajelzek, h mi lett az eredmény... U.I.: Én eddig így szoktam megadni, hogy pl a PortB-n melyik legyen kimenet: "DDRB = 0b011000;" Az istenért sem akarok kötözködni, csak gondoltam leírom, hátha valakinek aki majd későb olvassa ezt így egyszerűbb.... Minden jót! Barbár
Szia én inkább így csiálnám meg ![]() Énis WinAvr-rel programozok, de még nem láttam ilyet, hogy a PINx regisztert shiftelnénk. Idézet: „PORTC =(1 << PORTC3)” |= bitwise inclusive OR. &= Bitwise AND. Tehát így tudod állítani a PORTC 3.bitjét PORTC |= (1 << PORTC3 ); //1-re állít PORTC &= ~(1 << PORTC3 ); //0-ra állít Ja és lemaradt a ; parancsok végéről, tuti hibaüzenetet küld a progi. Javítsatok ki ha tévednék, ugyanis emberi dolog ![]() A kódot nem teszteltem mert suliból írok.
Köszi, mindjárt ki is próbálom.
Van tippetek hogy hol lehet a TavIr-on kivül hozzájutni Bascom tutorialokhoz és egyszerü az alapfunkciókkal foglalkozó példaprogramokhoz?
Mentségem legyen:
az írás időpontja (pontosvessző) ![]() ATtiny megírt programja (DDRC) Azt a fránya "vagy" jelet tényleg lefelejtettem ![]() Legközelebb jobban meggondolom, hogy hajnalban írjak-e.
Teljesen mindegy mit shifteltek a lényeg, hogy egyértelműen azonosítsa azt a lábat amit vizsgálni akartok. Ha megnézitek az AVR header file-ját akkor ez van benne:
Tehát tökéletesen fog menni a kód. Lehet valóban nem szerencsés belekeverni a PIND -t, de épp ez volt kéznél ![]()
Sziasztok !
Egy keressel fordulnek hozzatok. Ha valakinek ideje, energiaja, es lehetosege lenne, es kiprobalna a modositott LCD drivert, annak nagyon orulnek. Ugyanis voltak visszajelzesek hogy nem mindig volt ok az inicializalas. Pl. AVR egetes utan nem indult az LCD, csak teljes aramtalanitas utan.. Az init-et most javitottam, de nincs lehetosegem kiprobalni. Viszont szeretnem lezarni vegre a cikket,.. Udv.
Bocsi hogy nem válaszoltam, csak le kellett adni a szakdogatervemet, és ráment az időm.
Este meglesem majd.
Raer. Es legyiszves ezt nezd meg amit az elobb linkeltem. Koszonom.
Displaytech 162b + ATMega32 @ 4MHz, belso oszcillatorral.
Megy frankón, és nagyon köszönöm!
De jo! Vegre.
Meg megvarom Zoli visszajelzeset is.
Sajnos negatív.
Nem megy, az új init, még táp reset-el se. Ami szerintem egy hiba, hogy 8 bites módba kapcsoláskor DB4-DB5 1-re állítódik, de utánna nem állítja vissza semmi 0-ra. Így 4 bites módba kapcsolásnál nem csak a DB5 1-es, hanem a DB4-is. Beraktam "LCD_PORT = 0x0;" a 8 bites mód után, de így se megy, lehet még kell egy-két delay.
Az itt talalhatot probaltad ki?
Bővebben: Link Es koszi hogy megnezted !
Igen, amit 5hsz-el ezelőtt csatoltál.
De ha megnézed amire gondoltam, elméletileg nem is működhetne.
nem..
ő... 2 soros mód bekapcsolása új függvénybe került, vagy csak kimaradt? Mert én a saját programkörnyezetembe vizsgálom.
ja, nekem is ezzel van gond. a 2. sort nem akarja izzitani
Nálam most ebben a formában tökéletesen üzemel.
"portreset" is kimaradt, és így is jó, habár nem értem miért ![]() Csak a 2 soros mód bekapcsolást visszatettem.
Igen, ezzel megy rendesen, neked is köszi!
Szia !
Igen a 2 soros mod lemaradt valamiert. Most meg modositottam rajta egy keveset. Ha ezt meg valamikor kiprobalnad.. Aztan ezzel le is zarnam. Koszi.
Van ez a 16bites időzítőm. Kérdésem: programból hogyan tudom leállítani ezt az időzítést? Milyen paranccsal? Köszi!
Előosztót kikapcsolod. CS1x-be mind 0-át írsz, akkor nem kap órajelet a timer és leáll.
|
Bejelentkezés
Hirdetés |