Fórum témák

» Több friss téma
Fórum » AVR - Miértek hogyanok
 
Témaindító: pakibec, idő: Márc 11, 2006
Témakörök:
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
Lapozás: OK   693 / 840
(#) attika válasza kapu48 hozzászólására (») Szept 18, 2015 /
 
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?
(#) vyky válasza Sick-Bastard hozzászólására (») Szept 18, 2015 /
 
Szia.
Jelentem a kapcsolás megépítve a program hiba nélkül felírva ,de nem történik semmi 1.
2
(#) Sick-Bastard válasza vyky hozzászólására (») Szept 18, 2015 / 1
 
A PORTD helyett PIND-t kell hasznalni... Ezt valamiert rosszul irtam.
(#) vyky válasza Sick-Bastard hozzászólására (») Szept 18, 2015 /
 
Mindenhol átírtam a PORTD-t PIND-re és most a ledek villognak, a kapcsolóra nincs reakció
(#) Sick-Bastard válasza vyky hozzászólására (») Szept 18, 2015 /
 
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
(#) Kovidivi válasza vyky hozzászólására (») Szept 19, 2015 /
 
Nem mindet kell átírni, csak az if-nél. Ha bemenetet kérdezel le, PiND, ha kimenetet állítasz be akkor PORTD.
(#) vyky válasza Sick-Bastard hozzászólására (») Szept 19, 2015 /
 
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.
(#) vyky válasza Kovidivi hozzászólására (») Szept 19, 2015 /
 
Szia.
Csak ott írtam át az if-n belül.
(#) vyky válasza vyky hozzászólására (») Szept 19, 2015 /
 
Ic csere.Program fel ,és semmi
(#) vyky válasza vyky hozzászólására (») Szept 19, 2015 /
 
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
(#) vyky válasza vyky hozzászólására (») Szept 19, 2015 /
 
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.
(#) Sick-Bastard válasza vyky hozzászólására (») Szept 19, 2015 /
 
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.
(#) killbill válasza Sick-Bastard hozzászólására (») Szept 19, 2015 /
 
Idézet:
„2db 74HC164-et szeretnel a T2313ra kotni, akkor az mar SPI vagy USART-ot kell hasznalni.”
Miért is?
(#) Sick-Bastard válasza killbill hozzászólására (») Szept 19, 2015 /
 
Arra gondolsz, hogy program szinten oldja meg? Megteheti azt is, csak szerintem macerásabb.
(#) killbill válasza Sick-Bastard hozzászólására (») Szept 19, 2015 /
 
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.
(#) rolandgw válasza Sick-Bastard hozzászólására (») Szept 19, 2015 /
 
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.
(#) vyky válasza Sick-Bastard hozzászólására (») Szept 19, 2015 /
 
Köszönöm a cikket,mindjárt elolvasom,és megpróbálom értelmezni.
(#) vyky válasza vyky hozzászólására (») Szept 20, 2015 /
 
Szia.
Elolvastam a cikket. Megnéztem az adatlapokat,mármint a 74hc595,és a 74hc164-t.
Sajna nekem 74hc164-em van és a cikkben írt kapcsolás nem a legjobb nekem,mert ott 4 szál vezérli a shift regisztert,míg a 164-n csak 3 kell.
Persze a tévedés jogát fent tartom
(#) morzsa15 hozzászólása Szept 20, 2015 /
 
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!
(#) morgo válasza morzsa15 hozzászólására (») Szept 20, 2015 /
 
Szia! Olvasd el az avrdude 6.1 doksiját!
A hozzászólás módosítva: Szept 20, 2015
(#) Kerberosz1 hozzászólása 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:
  1. int channel1 = 100;
  2.     int flip = 1;
  3.      
  4.     int main(void)
  5.     {
  6.             DDRA = 0XFF;
  7.             DDRB |= 1<<PINB1;
  8.      
  9.             TCCR0 |= 1<<CS02;
  10.         while(1)
  11.         {
  12.                     if((PINB & 1<<PINB0) && flip==1)
  13.                     {
  14.                             TCNT0=0;
  15.                             flip=0;
  16.                     }
  17.                     if(~(PINB & 1<<PINB0) && flip==0)
  18.                     {
  19.                             channel1=TCNT0;
  20.                             flip=1;
  21.                     }
  22.                     PORTA=channel1;
  23.                     if( channel1<=93 )
  24.                     {
  25.                             PORTB |= 1<<PINB1 ;
  26.                     }
  27.                     else
  28.                     {
  29.                             PORTB &= ~(1<<PINB1) ;
  30.                     }
  31.         }
  32.     }



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.
(#) Kerberosz1 válasza Kerberosz1 hozzászólására (») Szept 20, 2015 /
 
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:
  1. if((PINB & 1<<PINB0) && flip==1)
  2.                 {
  3.                         //folyamat ha high-ra vált
  4.                 }
  5.                 if(~(PINB & 1<<PINB0) && flip==0)
  6.                 {
  7.                         //folyamat ha low-ra
  8.                 }


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
(#) morzsa15 válasza morgo hozzászólására (») Szept 20, 2015 /
 
Azt a cygwin programot lassan 3 órája telepíti. Vagy csak én bénázok valamit?
(#) csabeszq válasza morzsa15 hozzászólására (») Szept 20, 2015 /
 
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
(#) roland8811 hozzászólása 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
(#) Sick-Bastard válasza roland8811 hozzászólására (») 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
(#) roland8811 válasza Sick-Bastard hozzászólására (») Szept 20, 2015 /
 
köszi
(#) roland8811 válasza Sick-Bastard hozzászólására (») Szept 21, 2015 /
 
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. )
(#) Sick-Bastard válasza roland8811 hozzászólására (») Szept 21, 2015 /
 
Kérlek jobban fejtsd ki a problémát.
pl.: Mit értesz a
Idézet:
„, de viszzafele uart-al nem komunikál.”
alatt?
(#) roland8811 válasza Sick-Bastard hozzászólására (») Szept 21, 2015 /
 
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
Következő: »»   693 / 840
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