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
Kicseréltem az említett típusra,felprogramoztam az AVR-t és elsőre indult is.
Esetleg a későbbiekben lehet valami gondom ebből kifolyólag,hogy ezt a típust tettem bele?
A PORTD helyett PIND-t kell hasznalni... Ezt valamiert rosszul irtam.
Mindenhol átírtam a PORTD-t PIND-re és most a ledek villognak, a kapcsolóra nincs reakció
![]()
Villognak? Gyorsan?
Azt alapból nem kellene. Nem lehet, hogy a PIND4-en levo kapcsolo van rosszul bekötve, vagy a PIND4 logikai magas lejet kap? Ha ott kontakt hiba van az okozhatja a LEDek villogasat. A hozzászólás módosítva: Szept 18, 2015
Nem mindet kell átírni, csak az if-nél. Ha bemenetet kérdezel le, PiND, ha kimenetet állítasz be akkor PORTD.
Szia. Köszönöm valóban elkötöttem a PD4-es kapcsolót
![]() De most meg nem tudom felírni az procit újra ![]() Az AVR-hibát írki olvasás-íráskor.
Szia.
Csak ott írtam át az if-n belül.
Ezer hála mindenkinek.Sikerült,mint kiderült a kapcsolók nem érnek bele rendesen a próbapanelba,és ezért nem csinált semmit
![]()
Kicsit átírtam a progit,PD4-re egyesével kapcsolnak fel,és a PD5-re meg egyesével le.
És ugyanez ellentétesen,de ha ezt kettő sn74hc164-el szeretném megvalósítani akkor a program miben változik? A kapcsolást megpróbálom a net alapján megcsinálni,de nem ígérek semmit. Előre is köszönöm szépen.
2db 74HC164-et szeretnel a T2313ra kotni, akkor az mar SPI vagy USART-ot kell hasznalni.
Neked EZ a cikk kell. Igaz a cikkben egy 74HC595-van hasznalatban, de jol elmagyarazza az SPIt. Ha csak nem kotelezo a 164et hasznalnod, akkor inkabb a 595-essel lene erdemes megismerkedni. Ez jobban kezelheto, iranyithato.
Idézet: Miért is? „2db 74HC164-et szeretnel a T2313ra kotni, akkor az mar SPI vagy USART-ot kell hasznalni.”
Arra gondolsz, hogy program szinten oldja meg? Megteheti azt is, csak szerintem macerásabb.
Arra gondolok, hogy nem kell hozzá SPI. Megoldható azzal is, de nem szükségszerű. Ráadásul, ha valaki tanulni akar, akkor egyébként sem az AVR-t és annak perifériáit kell először megtanulni, hanem az alapokat. Programozás, bit, byte, stb. Ebben meg többet ér egy olyan függvény megírása, ami bit banging-gel feltölti a két shift regisztert, mint az SPI modulra kiirni a két byte-ot.
A tiny-ben USI van. Annyi köze van a cikkhez,hogy SPI működésre is lehet bírni,de nem hinném,hogy kezdőknek való feladat.
Köszönöm a cikket,mindjárt elolvasom,és megpróbálom értelmezni.
Sziasztok!
Lehet hogy hülye kérdés de eredeti pickit 2-vel lehet programozni atmega 8-at? Ha igen tudnátok segíteni hogy kell? Válaszotokat előre is köszönöm! ![]()
Szia! Olvasd el az avrdude 6.1 doksiját!
A hozzászólás módosítva: Szept 20, 2015
Üdv,
egy atmega32a microvezérlővel szeretnék feldolgozni egy hobby vevőből érkező jelet, pwm jel 20ms periódusokkal 5-10%-os kitöltöttséggel. A timer/counter 0 és 1 használatban van így maradt egy 8 bites timer, sok megoldást találtam a neten, konkrét választ sehol nem kaptam, de elméletben az lenne egy megoldás, ha letudnám mérni amíg highon van a jel. Próbálkoztam magamtól de elakadtam és fogalmam sincs hogyan tovább. Kódom:
16Mhz en megy a proci, PORTA-n ledek vannak, és ha rákötöm a vevőre folyamatosan 1-et mutat Ötletem sincs hol rontottam el, vagy hogyan lehetne megoldani, ha esetleg valaki tudna segíteni nagyon megköszönném.
Oké csak lusta módon ki ctrl+c/v ztem az első kérdésem, most már tovább haladtam és egy egyszerűbb problémám van, adott egy pwm jel 20ms periódus 5-10% kitöltöttség, hogyan mérjem le a microvezérlővel a rising edge-t és a falling edge-t, nincs oszcilloszkópom ezért azt gondoltam a hobby vevőből érkező jelem középállásban 1,5ig 5 volt, és a maradék 18,5 secig 0 volt. Ezért írtam ezt a kód részletet:
Leteszteltem egyszerűen, ha highon van a jel portb pinb1-re 1-et írok ha low a jel portb pinb1-re 0-át írok, ennek az eredménye az lett, hogy amikor egy szervót kötöttem portb pinb1-re a szervó hol mozgott hol nem, de ennek az is lehet az oka, hogy az egyetlen kristályom ami van be van ültetve már a nyákomba, és a próbanyákon amin próbáltam, egy viszonylag hosszú vezetéken át kötöttem a microvezérlőhöz a kristályt. A lényeg és ami a kérdésem: Egy pwm jel, raising edge, és falling edge, tehát amikor lowról highra vált, és highról lowra lehet-e ezzel a kóddal 100% pontossággal észlelni? Vagy teljesen rosszul értelmezem a dolgokat. Nagyon megköszönném ha valaki tudna segíteni ebben. A hozzászólás módosítva: Szept 20, 2015
Azt a cygwin programot lassan 3 órája telepíti. Vagy csak én bénázok valamit?
Ha lassú a net, akkor eltart egy darabig. Pláne, ha kijelölted, hogy mind 20 gigát telepítse, ne csak a fontos részeket. Komplett KDE is van benne, meg egy csomó vacak, amire az ég világon semmi szükséged nem lesz.
A hozzászólás módosítva: Szept 20, 2015
Málna pc-t sima atmega328p-pu val hogy lehet öszzekötni?
nem programozásra értem hanem kommunikálásra. uart félére , de semilyen jelátalakító nincs most kéznél.. A hozzászólás módosítva: Szept 20, 2015
A Málna 3,3V-os és az atmega328P is képes 3,3Vos üzemre.
Csak össze kell kötni és kész. Márna AVR RXD <- TXD TXD -> RXD
köszi
Képzeld , feltudom programozni spi-n , de viszzafele uart-al nem komunikál.
picocom -b 9600 /dev/ttyAMAO de nem jön adat ( vagy valami amitől nemtud. )
Kérlek jobban fejtsd ki a problémát.
pl.: Mit értesz a Idézet: alatt? „, de viszzafele uart-al nem komunikál.”
Na megoldódott...
2 config kellet. és az osc. viszzacserélni 12 mhz-re nano /etc/inittab #kikommentelni #0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100 nano /boot/cmdline.txt dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait erre: dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait alapjáraton 12mhz osc. volt mellete , és ezen is programoztam , (próbálgattam 16-al. utána) ”B¨…“Ő¨MŠř”B¨…“Ő¨MŠř”B¨…“Ő¨MŠř”B¨…“Ő¨MŠř”B¨…“Ő¨MŠř”B¨…“Ő¨MŠř”B¨…“Ő¨MŠř” mikor viszzacseréltem a 12mhz re , már olvasható adatok szivárogtak át ![]() szóval addig kutakodtam amíg nem sikerült ![]() |
Bejelentkezés
Hirdetés |