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   530 / 840
(#) zombee válasza zombee hozzászólására (») Ápr 3, 2013 /
 
Saját megoldásom:
Kaptam 2 T-Bird2 panelt javításra, ezeken nem szórakoztam fóliavágással és drótozással.
Volt hőlégfóvós páka, kiforrasztottam őket, beforrasztottam egy korábbi projektből
visszamaradt NYÁK-ra, ISP-programozó kellett hozzá, meg egy kvarc mert arra volt állítva.
JTAGEN-t vissza, majd újbóli kiforrasztás után mehetett vissza a T-Bird2 panelra.
A művelet 2 panellel max. fél óra lehetett...
(#) vtnagy válasza lajtosali hozzászólására (») Ápr 4, 2013 /
 
Szia!

Én hasonló hibaüzenetet kaptam, amikor a JTAGICE programozó kimeneteire (TCK, TDO, stb.) túl nagy értékű ellenállást tettem be. Kicseréltem kisebbre, azóta minden gond nélkül megy. Nem biztos, hogy Nálad is ez lesz a probléma, de ha nem megy sehogy sem, mindenképpen nézd ezt meg!

Üdv
vtnagy
(#) lajtosali válasza zombee hozzászólására (») Ápr 4, 2013 /
 
Már biztos,hogy én állítottam át a fuse biteket a procin.Csoporttársam legalábbis azt tartotta valószinűnek.Sajnos sem a fejlesztő környezetet sem mást nem ismerek az egész témában.Levelezőn tanulok és ezidáig 3-4 óra foglalkozás volt.Ez egy full kezdőnek arra sem elég ,hogy felfogja milyen órán is ül(így vagyok én is!).Tegnap találtam itt a cikkek között az avr progik telepítéséről egy cikket de még most sem tiszta,hogy milyen procihoz milyen programozóval tudok csatlakozni(jtag,isp,stb)annyit kolléga elmondott,hogy a doper az isp.Az viszont nekem nincs.Most a panelt elvittem neki és a leendő tanárunkkal megoldást találnak a bajomra a panellel.(Újraprogramozzák a fuse biteket,ha tudják).Olyan kérdésem / kérésem lenne: van-e az oldalon olyan leírás ami végigviszi a lépéseket a prog megírásától a panelen való futtatásig a dolgot pl egy led bekapcsolásával.vagy megcsinálná-e vki.A suliban winavr-t használunk.makefile-ban mit kell átírni,beírni,hol találom a fájlokat,miket kell egy könyvtárba tenni,és a legfontosabb.tudom-e úgy állítani,hogy mégegyszer ne férjek a fuse bitekhez(bár szerintem ez jó lecke volt számomra,csak nem tudom hol és mikor állítottam át.)Köszi!
(#) Andrasirex hozzászólása Ápr 4, 2013 /
 
Üdv mindenkinek!
Egy ''Rotary Encoder''-t kellene Atmega8 mikrovezérlőhöz illesztenem, a jelet pedig számolni kéne úgy hogy ha elfordítom egy irányba az enkódert akkor minden lépésnél hozzáadjon az értékhez egyet,ha pedig visszafele akkor levonjon egyet az értékből.Ehhez kellene nekem egy kódrészlet mondjuk CodeVisionAVR-ben vagy WinAVR-ben.Ezt a kapott értéket kellene osztanom az enkóder felbontásával és akkor fordulatonként 1-et kapnék.Az érték negatív kell legyen ha többet tekerek visszafele mint előre.
Ez az érték majd ki lesz iratva egy alfanumerikus kijelzőre.
Ha valaki meg tudja írni ezt a kódrészletet,kérem segítsen.

Előre is köszönöm!
(#) dB_Thunder válasza Andrasirex hozzászólására (») Ápr 4, 2013 /
 
Ha kerestél volna:Bővebben: Link
Ez pont megán fut, kicsit később írtam az osztásról is.

De van cikk is írva az enkóder haszlálatáról.
A hozzászólás módosítva: Ápr 4, 2013
(#) szines hozzászólása Ápr 5, 2013 /
 
Sziasztok!
Abba keveredtem bele hogy a képen látható beállításokat hogyan tudnám AVRStudio-ba beírni.
Mármint beégetni ATMEGA 8A-ba.Megköszönném ha valaki megírná.
(#) szines válasza szines hozzászólására (») Ápr 5, 2013 /
 
Lemaradt:7,3728 MHz-es kvarc+ 2X22pF az órajel.
(#) zombee válasza szines hozzászólására (») Ápr 5, 2013 /
 
Ezt keresed?

m8.PNG
    
(#) szines válasza zombee hozzászólására (») Ápr 5, 2013 /
 
Remélem.
Köszi.
(#) Dokikaa hozzászólása Ápr 6, 2013 /
 
Üdv!

Valaki segítene, hogy ez _BV(valami) mit jelent?

Köszönöm.
(#) blackdog válasza Dokikaa hozzászólására (») Ápr 6, 2013 / 1
 
(#) Robi98 hozzászólása Ápr 7, 2013 /
 
Sziasztok!
AVR-es kísérletezéseim során szerettem volna építeni egy ilyen áramkört némi változtatással(kezdetben csak egy két LED-es villogót). Azonban akadt egy probléma: Én azt olvastam hogy az ss lábat bármelyik port bármelyik lábára kinevezhetjük, nekem viszont csak a PB2-es-re sikerül. Amikor a PB1-es lábra neveztem volna ki, akkor a latch össze vissza működött(például ha a kezemet a vezeték felé emeltem 10 centire akko rbekapcsolt a led).
A hiba valószínűleg szoftveresen van, de nem tudom, hogy mi.
  1. #include <avr/io.h>
  2.     #include <util/delay.h>
  3.      
  4.     #define SPI_PORT PORTB
  5.     #define SPI_DDR  DDRB
  6.     #define SPI_74HC595_CS  PB1 // 74HC595 SPI-t aktivalo Chip Select lab
  7.      
  8.     void SPI_74HC595_Write(unsigned char adatki)
  9.     {
  10.       // 74HC595 SPI bekapcsolasa (CS lab logikai alacsony szint)
  11.       SPI_PORT &= ~(1<<SPI_74HC595_CS);
  12.       _delay_us(1);
  13.       // Adattranszfer elinditasa (MOSI)
  14.       SPDR = adatki;
  15.       // Varakozas amig az adattranszfer befejezodik
  16.       while(!(SPSR & (1<<SPIF)));
  17.       // 74HC595 SPI kikapcsolasa, Latch kimenetek bekapcsolasa
  18.       SPI_PORT |= (1<<SPI_74HC595_CS);
  19.     }
  20.      
  21.     int main(void)
  22.     {
  23.      
  24.       // AVR ATMega8 SPI periferia beallitasa
  25.       // MOSI es SCK kimenet, a tobbi bemenet
  26.       SPI_DDR = (1<<PB3)|(1<<PB5)|(1<<PB1);
  27.       // SPI engedelyezese, Master mod, 8 as előosztás
  28.       SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
  29.       SPSR|=(1<<SPI2X);
  30.       SPI_PORT |= (1<<SPI_74HC595_CS);
  31.       // 74HC595 shift regiszter reszetelese
  32.       SPI_74HC595_Write(0);
  33.      
  34.       for(;;)
  35.       {
  36.         _delay_ms(80);
  37.                 SPI_74HC595_Write(1);
  38.                 _delay_ms(80);
  39.                 SPI_74HC595_Write(2);
  40.       }
  41.     }
(#) vagnerjazon válasza Robi98 hozzászólására (») Ápr 7, 2013 /
 
Szia!
Ha jól tudom, az SS lábat akkor is meg kell adni kimenetnek, ha nem azt használod arra a célra.
(#) Robi98 válasza vagnerjazon hozzászólására (») Ápr 7, 2013 /
 
Köszi szépen a választ, soha nem gondoltam volna. Így már végre működik.

Azonban ha már itt tartunk, lenne még egy kérdésem: Win Avr-ben hogyan lehet beállítani azt, hogy ha nem 1Mhz-n járatjuk a processzort, hanem mondjuk 4MHz-en akkor is stimmeljen az időzítés. Pl.: _delay_ms(500); az 500 ms legyen és ne négyszer annyi?
(#) vagnerjazon válasza Robi98 hozzászólására (») Ápr 7, 2013 /
 
A makefile-ban a megfelelő frekvenciát kell beállítani, meg a megfelelő fuse biteket is úgy kell beállítani (AVRStudio-ban, mert simán WinAVR-ben nem lehet).
(#) mrd86 hozzászólása Ápr 8, 2013 /
 
Olyan gondom lenne hogy megépítettem egy AVR soros programozot és nem működik ponyproggal. Egy Tinity2313-at akarok felprogramozni és nem megy már szétmegy az agyam ettől a -24-es hibától.

A programozó: Programozó

"Device missing or unknown device 24"
(#) qtrica hozzászólása Ápr 8, 2013 /
 
Sziasztok,
Talán tudtok segiteni:

Kérem a hozzáértők segitségét Attiny45 programban. Eddig még nem találkoztam ezzel az eszközzel, nem értek hozzá.
Következő problémám adódott vele. 24VDC hajtóműves motort vezérel. Nővelni kellene a fordulatszámot, ezért 2x-es fordulatú tipusra lett cserélve a motor. Ahhoz hogy a dupla fordulatszám meglegyen kellene módositani a fent emlitett proci programját. Ebben kérném a hozzáértők segitségét.
A hozzászólás módosítva: Ápr 8, 2013
(#) zombee válasza mrd86 hozzászólására (») Ápr 8, 2013 /
 
Kalibrálás megvolt? Jelek invertálása is? A proci kap tápfeszt?

Egyébként ezt a soros verziót nem szeretjük, mivel más jelszintekkel dolgozik.
Amit művel ez a programozó, az az RS-232 szabvány megerőszakolása.
Az alaplapok/sorosportok többségével működik, azonban egy részük toleranciaszintje alacsonyabb...

Ha mindenképp egyszerű és olcsó programozót akarsz, a nyomtatóportos verziót javaslom:
Bővebben: Link
Ne felejtsd el a 2-12 és 3-11 átkötést, és azt hogy a procinak 5V táp kell!
(#) zombee válasza qtrica hozzászólására (») Ápr 8, 2013 /
 
Ha esetleg megírnád hogy pontosan mit csinál akkor valószínűleg tudnánk segíteni.
DC motor oké, PWM kimenet oké, PWM bemenet ami kérdés hogy mit csinál és mi változik.
Gondolom az a jeladóé lehet, csak az a nem mindegy hogy milyen jel jön át rajta...
(#) qtrica válasza zombee hozzászólására (») Ápr 8, 2013 /
 
Köszönöm, holnap tudom szkóppal csekkelni a bemenetet. Akkor már többet tudok mondani, mert most csak annyit tudok hogy 10 lépésben változtatható a fordulatszám.
A hozzászólás módosítva: Ápr 8, 2013
(#) zombee válasza qtrica hozzászólására (») Ápr 8, 2013 /
 
Ok. Esetleg addig meg tudnád mondani, hogy hol állítod a sebességet 10 fokozatban?
(#) qtrica válasza zombee hozzászólására (») Ápr 8, 2013 /
 
Meghozták közben a szkópot.
PLC vezérli.
PWM jel megy rá ami a jelen állapotban kb. 10-50% között állitható (előtte gondolom kb.10-90% lehetett), 1.76KHz a freki. A kimenete 13V-ig megy fel 24V helyett.
A hozzászólás módosítva: Ápr 8, 2013
(#) zombee válasza qtrica hozzászólására (») Ápr 8, 2013 /
 
Tehát a PWM_IN bemenetre a PLC jele kerül? Akkor hogyan méri a fordulatszámot?
Én inkább hardveres problémát gyanítok, lehet hogy a FET nem tud nagyobb áramot átengedni.
(#) qtrica válasza zombee hozzászólására (») Ápr 8, 2013 /
 
Az uj motor kisebb áramot vesz fel, terheletlenül járatom. A PLC kap egy optoszenzorról egy fordulatszám arányos jelsorozatot.
(#) zombee válasza qtrica hozzászólására (») Ápr 9, 2013 /
 
Lehet hogy a PLC a ludas? Azt kellene átprogramozni hogy nagyobb kitöltésű legyen a kimenete.
(#) Kiss Gábor hozzászólása Ápr 9, 2013 /
 
Hali!

Lenne itt egy rövid kódom, de nem akar lefordulni, bocs srácok most kezdtem bele a avr-be még kezdő vagyok, de mi lehet a baj?

#define piros 0b00000001
#define zold 0b00000100
#define kek 0b00001000
#define sarga 0b00000101
#define turkiz 0b00001100
#define lila 0b00001001
#define feher 0b00001101;

#include <avr/io.h>
#include <avr/interrupt.h>

int main (void){
DDRB=0b00001101;
TCCR0A=0b00000010;
TCCR0B=0b00000101;
OCR0A=255;
TIMSK=0b00010000;
SREG|=128;

while(1){
}
}

ISR(TIM0_COMPA_vect){
switch(PORTB){
case piros:
PORTB=zold;
break;
case zold:
PORTB=kek;
break;
case kek:
PORTB=sarga;
break;
case sarga:
PORTB=turkiz;
break;
case turkiz:
PORTB=lila;
break;
case lila:
PORTB=feher;
break;
default:
PORTB=piros;
}

}
(#) Hooligan01 válasza Kiss Gábor hozzászólására (») Ápr 9, 2013 /
 
Szia!

Milyen hibát ír a fordító? Milyen kontroller? Mivel fordítod?
???
(#) Kiss Gábor válasza Hooligan01 hozzászólására (») Ápr 9, 2013 /
 
Atmega 8, fordító Avr studio 4, hiba: undeclared TCCR0A, TCCR0B, OCR0A
(#) Hooligan01 válasza Kiss Gábor hozzászólására (») Ápr 9, 2013 /
 
Ez azért van, mert a mega8-ban nincsenek ilyen nevű regiszterek.
Olvasd át az adatlapot, de legalább azt, hogy milyen timer regiszterei vannak a mega8-nak.
(#) zombee válasza Kiss Gábor hozzászólására (») Ápr 9, 2013 /
 
Ez a kód ATMega48/88/168 - ra lett írva, ATMega8 nem tartalmaz ilyen regisztereket,
a mega8-ban a Timer0 elég fapados.
Ha maradsz mega8-nál, használd az 1-es timert, abban megtalálod ezeket.
Adatlap a barátod(de tényleg!).
Következő: »»   530 / 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