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   278 / 839
(#) Robi98 válasza augre hozzászólására (») Nov 8, 2010 /
 
Nekem az is le van töltve,de azt olvastam,hogy a fuse bitek áligatása nagyon nehéz.Ja és még Makfile-t is kell írni.De azért még meg próbálom.
(#) Antario hozzászólása Nov 8, 2010 /
 
Sziasztok.
Most kezdtem AVR-rel foglalkozni. Meg is látszik. Kikapcsoltam a RESET lábat (nem tudván mi lesz az eredménye), így az ISP-mmel már nem tudom programozni (most már értem, hogy miért).
Van valami mód rá, hogy visszaéledjen a csip? (Magasfesz. programozó használata nélkül.) Van esetleg valami "manuális" mód rá, hogy visszaállítsam a RESET lábat?
Nem halok bele akkor se, ha nem, mert végüis csak egy ATTINY45, de nah ...
(#) Reggie válasza Antario hozzászólására (») Nov 8, 2010 /
 
Nincs ra mas mod. Dokumentacio 152. oldal 2. megjegyzes.
(#) augre válasza Robi98 hozzászólására (») Nov 8, 2010 /
 
ha most kezded, nem javasolt a fuse bitek állítgatása, a makefile-t megcsinálni pedig nagyon egszerű.

ott van rá a makefile editor, öt kattintás kb.
(#) Antario hozzászólása Nov 8, 2010 /
 
Köszönöm a válaszokat.
Pontosan mi az a Makefile?
(Linkkel is megelégedem.)
(#) gtk válasza Antario hozzászólására (») Nov 8, 2010 /
 
A valasz: g00gle. Bar az AVR-gcc -hez irt Makefile elter pl. a Linux ala irt Makefileoktol. pl: avrdude (akar mas programok) parameterezese, hivasa.
(#) Antario hozzászólása Nov 8, 2010 /
 
Csak tudnám, hogy akkor minek a fórum. Mindegy. Kösz.
(#) gtk válasza Antario hozzászólására (») Nov 8, 2010 /
 
Azt hiszem az ibutton -os cikkben/kapcsolasban is van egy AVR-gcc szpecifikus Makefile.
(#) Antario hozzászólása Nov 8, 2010 /
 
Köszi szépen
(#) augre válasza gtk hozzászólására (») Nov 9, 2010 /
 
(#) (Felhasználó 56240) hozzászólása Nov 9, 2010 /
 
Sziasztok
Segítség kel, mert nem tudom, hogy mit csinálok rosszul
Készítetem egy AVR programozott
Ezt a fajtát
http://www.hobbielektronika.hu/kapcsolasok/elso_avr_programozom_oldal3.html
Fel is programoztam saját magával rendben is ment minden, ahogy a cikkben van írva
Feltelepítetem a FTDI driver-t és át alítottam 2 portra mert alapból 7-est adata neki
de programozni szeretetem volna vele de nem ismeri fel a programok (PonyProg se és a AVROSPII) ezekel a programokal probálkoztam
(#) gtk válasza augre hozzászólására (») Nov 9, 2010 /
 
Nezd csak meg jobban...
(#) augre válasza gtk hozzászólására (») Nov 9, 2010 /
 
megvan.
Nemtudod véletlen, h. a winavr-es makefile típust, a linux avr-gcc komázza-e?
(#) Lucifer válasza augre hozzászólására (») Nov 10, 2010 /
 
A Makefile az Makefile, aminek semmi köze az avr-gcc-hez max. annyi, hogy a make program a makefile interpretálása során azt meghívja.

Amúgy kérdésedre válaszolva komázza egyedül az avrdude programozó argumentumaival szokott gond lenni. (COM/LPT/akármi helyett a megfelelő filedescriptort várja)
(#) gtk válasza Lucifer hozzászólására (») Nov 10, 2010 /
 
Azert irtam hogy avr-gcc szpecifikus, mert ha nem letolt mondjuk egy Linuxos Makefile-t, azt biztos hogy nem fogja tudni atirni AVR-re. Nagyon is AVR szpecifikus, ott van benne a letoltoprogram meg az avr-gcc configja (kapcsoloi) is.
(#) Robi98 hozzászólása Nov 10, 2010 /
 
Sziasztok!
Nem tudom, hogy a makfile-ban a (programozó) beállításnál mit tegyek.Ami nekem van programozó az STK-500-as,de az STK-500v2 van automatikusan beállítva.
Mi a főbb külömbség? Én az STK-500-as at választottam.

Amikor lefordítottam a programot mindig azt írta ki,hogy az
időzítő,késleltető beállításokra nincs konkrét utasítást.
Mi lehet a baj?

Előre is köszi.
(#) Tomi_Bp hozzászólása Nov 10, 2010 /
 
Sziasztok! Kellene egy kis segítség! Van két változóm: xhi_byte és xlo_byte. Ezek egy I2C-s iránytű modultól kapják az értéküket. Hogy tudnám szépen megoldani azt, amit csúnyán úgy csinálnék, hogy ha xhi_byte = 7 (0000 0111), xlo_byte = 178 (1011 0010), akkor x = 1970 (0000 0111 1011 0010). Mivel eddigi tapasztalatom azt mutatja, hogy xhi_byte, csak 7 és 8 értékeket veszi fel, én olyan gusztustalanul tudnám most csak megoldani, hogy ha xhi_byte 7, akkor x = xlo_byte + 1792 (0000 0111 0000 0000) és ha xhi_byte 8, akkor x = xlo_byte + 2048 (0000 1000 0000 0000), de én nem szeretnék ilyen gusztustalanul programozni!
(#) Ricsi89 válasza Tomi_Bp hozzászólására (») Nov 10, 2010 /
 
létrehozol egy 16 bites változót és a xhi_byte-ot elshifteled balra 8-al, majd a két értéket össze vagyolod.
Pl.:
  1. uint16_t osszeg=(xhi_byte<<8) | xlo_byte;
(#) Tomi_Bp válasza Ricsi89 hozzászólására (») Nov 10, 2010 /
 
Nagyon szépen köszönöm! Ez az amire gondoltam!
(#) Tomi_Bp válasza Ricsi89 hozzászólására (») Nov 10, 2010 /
 
Gr89! Még egy gyors kérdésem lenne. Szükségem lenne a számoláshoz arctan függvényre. Azt hogyan tudom használni, illetve a π (pí) -t?
(#) Ricsi89 válasza Tomi_Bp hozzászólására (») Nov 10, 2010 /
 
Ezek a math.h-ban vannak benne. Ezt nézd át, ott van benne mindkettő. Másban nem tudok segíteni, ezeket még nem használtam.
(#) Tomi_Bp hozzászólása Nov 11, 2010 /
 
Sziasztok! Erre a kódra:
  1. if( xx == 0 )            
  2. {
  3.     if( yy < 0 )         //Ha xx = 0 és yy < 0
  4.     {
  5.         azimuth = 90;    
  6.     }
  7.     if (yy > 0 )         //Ha xx = 0 és yy > 0
  8.     {
  9.         azimuth = 270;  
  10.     }
  11. }
  12.  
  13. if( xx < 0 )             //Ha xx < 0
  14. {
  15.     azimuth = 180 - ( ( atan ( yy / xx) ) * 180 / M_PI );    // azimuth=180-[arctan(yy/xx)]*180/pí
  16. }
  17.  
  18. if( xx > 0 )
  19. {
  20.     if( y < 0 )          //Ha xx > 0 és yy < 0
  21.     {
  22.         azimuth = -1 * ( atan ( yy / xx) ) * 180 / M_PI;     // azimuth=-[arctan(yy/xx)]*180/pí
  23.     }
  24.     if (y > 0 )          //Ha xx > 0 és yy > 0
  25.     {
  26.         azimuth = 360 - ( ( atan ( yy / xx) ) * 180 / M_PI ); // azimuth=360-[arctan(yy/xx)]*180/pí
  27.     }
  28. }

ezeket a hibákat dobaja ki:
Idézet:
„c:/winavr-20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: compass.elf section .text will not fit in region text
c:/winavr-20090313/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: region text overflowed by 596 bytes”

Mit kellene alakítanom a kódon, hogy lefordítsa?
Előre is köszi!
(#) Reggie válasza Tomi_Bp hozzászólására (») Nov 11, 2010 /
 
A programod nem fer bele a flash-be. Probalj meg -Os optimalizaciot hasznalni.
(#) Tomi_Bp válasza Reggie hozzászólására (») Nov 11, 2010 /
 
Az a fránya arctan függvény nagyon megdobja a hex fájl méretét. Ki // -eltem egy csomó mindent, de most még mindig túl nagy. Na így sem jártam még. Mi ilyenkor a megoldás? Az eprom-ját, vagy valami memóriát nem lehet felhasználni erre a célra?

hiba.JPG
    
(#) Ricsi89 válasza Tomi_Bp hozzászólására (») Nov 11, 2010 /
 
Az ilyen számítást igénylő részek sok helyet foglalnak. Nekem az órámban a hőmérő részt nem tudom bekapcsolni ilyen miatt. Jelenleg 80%-osan van tele a kontroller, de ha berakom a hőmérő részt, akkor 254%-on lesz.
(#) Reggie válasza Tomi_Bp hozzászólására (») Nov 11, 2010 /
 
-Os -t megprobaltad? Esetleg meg vegigbongeszheted a gcc kapcsolokat, mert a -Os nem kapcsol be mindent, ami roviditi a kodot, de hosszabb tavon jobban jarsz azzal, ha veszel egy nagyobb flash-sel rendelkezo avr-t, de meg jobb ha erosebb maggal is rendelkezot valasztasz, mert a bovebb utasitaskeszlettel gyorsabb es kisebb kodott kapsz.

Szerk: esetleg probald meg a -ffast-math kapcsolot. Ettol viszont pontatlanabbak lesznek a szamitasok.
(#) Tomi_Bp válasza Reggie hozzászólására (») Nov 11, 2010 /
 
Ha az Os-t így kell, akkor automatikusan azon volt. Van itthon egy ATMega16 is, de a HW most ATMega8. A 16oshoz kéne csinálnom nyákot, meg minden ... Jó lenne -legalább ideiglenesen- belepréselni 8asba. Az ffast-math kapcsolót hol találom?

Os.JPG
    
(#) Ricsi89 válasza Tomi_Bp hozzászólására (») Nov 11, 2010 /
 
Ott ahol most nézed, csak a Custom Options résznél. Ott a jobb oldali felsoroláshoz adhatsz még hozzá.
(#) Reggie válasza Tomi_Bp hozzászólására (») Nov 11, 2010 /
 
Ha jol tudom a custom options-ban tudod beallitani(neked kell begepelni). De javitson ki barki, en csak AVR32 Studio -t hasznalok, az meg kicsit mas. (sima avr-t command line-bol meg sima text editorral nyomom sajat makefile-lal stb.).
Következő: »»   278 / 839
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