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   280 / 839
(#) Reggie válasza (Felhasználó 56240) hozzászólására (») Nov 13, 2010 /
 
Itt van egy gyors osszefoglalo. Programozas szempontjabol kompatibilisek, az errata-kat viszont erdemes osszevetni.
(#) (Felhasználó 56240) válasza Reggie hozzászólására (») Nov 13, 2010 /
 
Szia
Köszönöm a segítséget
Ha jól látom, akkor csak a fogyasztásban tér el az jó, mert elemről szeretném használni
(#) Reggie válasza (Felhasználó 56240) hozzászólására (») Nov 13, 2010 /
 
Azert olvasd el a sleep modokat, stb mindket icnel, hogy ott mi a kulonbseg, mert forumokban olvastam, hogy volt aki egy kesz termeknel allt at, es ugyan az az sw 3x annyit fogyasztott az A veguvel sleep kozben. Feltehetoleg surubben ebredt fel az ic. Mivel en nem hasznalom a tipust, igy nem hasonlitottam ossze az adatlapokat csak nagyon nagy vonalakban.
(#) fater23 válasza Reggie hozzászólására (») Nov 14, 2010 /
 
Huhúúú, teljes mértékben igazad van!!! msot szégyenlem magam hogy ilyen balek tudok lenni. Teljesen igazad van, az f10-et használtam léptetéshez és nem az F11-et. Köszönöm az ötletet, pedig már mennyit agyaltam rajta. )) egyébként atmega8, és csak a debuggerben futtatom először amit kitalálok és csak utána töltöm fel a kontrollerre.

Szia, mégegyszer köszönöm.
fater
(#) Reggie válasza fater23 hozzászólására (») Nov 14, 2010 /
 
Nincs mit igazan. Meg lenne 1-2 tippem neked:
1. T1_INI: elejere cli kene es a vegere az sti, mivel piszkalod a TIMSK-t es nem kivant megszakitas keletkezhet.
2. Mivel T1_INI-t elobb hivod meg, ezert T0_INI-nel is ezeket a modositasokat javaslom, mivel T0_INI hivasakor mar engedelyezve lesz a globalis megszakitas. Amugy javaslom, hogy minden ilyen hasonloan kritikus muveletet vegzo szubrutin elejere es vegere tegyel cli-t es sei-t (vagy legalabb a kritikus sorok ele es moge), mert igy a sokkal kisebb esellyel generalsz magadnak misztikusnak tuno hibakat.
(#) (Felhasználó 56240) válasza Reggie hozzászólására (») Nov 14, 2010 /
 
Szia
Meg próbálom értelmezni először is az adatlapot
remélem nincs sok buktató
(#) fater23 válasza Reggie hozzászólására (») Nov 14, 2010 /
 
Köszönöm az ötleteket is, és megis fogadom mert igazad van jobb kézben tartani a megszakításokat ha különböző időkben aktivizálódhatnak, és előbb utóbb tuti galibát okoznának. Remélem ma lesz időm egy kicsit jáccani.
szia
fater
(#) lajos1969 hozzászólása Nov 14, 2010 /
 
Sziasztok!
Lenne egy kérdésem ezzel a kapcsolással kapcsolatban.
Szerintetek működőképes?
Milyen elven működik? Röviden.
Köszönöm.
http://easyelectronics.ru/3d-led-globus.html
(#) Sir-Nyeteg válasza lajos1969 hozzászólására (») Nov 14, 2010 /
 
Mint a propeller clock. Van rá külön topik, és sok-sok videó a youtube-on Bővebben: Link.
(#) lajos1969 válasza Sir-Nyeteg hozzászólására (») Nov 14, 2010 /
 
Egy furcsa nekem benne, hogy nincs fordulatszám figyelés a prop. clock- nál van. Ez ilyen szempontból hogyan működik?
Propelleres órát már építettem. Ez lenne az első AVR-es projektem.
(#) Robi98 hozzászólása Nov 14, 2010 /
 
Sziasztok!
Amikor a WinAvr-be próbáltam lefordítani a programot,mindig kiírta,hogy az időzítéseknek,késleltetéseknek valamint az avr konstans beállításoknak nincs mappája (ijen mappa nem létezik). Pedig én megtettem az include beállításokban mind a kettőt.Szeretném, ha valaki (aki tudna),vállaszolna rá.

Előre is köszönök minden vállaszt.
(#) levi18 válasza Robi98 hozzászólására (») Nov 15, 2010 /
 
Szia!
Készíts egy mappát pl. a C: gyökérbe.
Oda mentsd a projectet, ha AVR studio-n keresztül használod a Winavr-t.
Az elejének pedig valahogy így kjell kinéznie:
  1. #include <avr/io.h>
  2. #define F_CPU 8000000UL
  3. #include <util/delay.h>
(#) Robi98 válasza levi18 hozzászólására (») Nov 15, 2010 /
 
Én WinAvr-ben programoztam,mégpedig ezzel a kezdéssel:
  1. #include <avr/io.h>
  2. #include <util/daley.h>

Úgyhogy reménykedek,hogy itt van a hiba valahol.
(#) Tomi_Bp hozzászólása Nov 15, 2010 /
 
Sziasztok! Az volna a kérdésem, hogy mi miatt lehet az, hogy ATMega16oson nem tudom használni a 3310 Nokia kijelzőjét, míg ATMega8assal tudtam. Elvileg a kódban nincs semmi olyan, ami chip függő lenne. Ugyan úgy a PortB-t használom, ugyan azzal a kiosztással, de meg sem mukkan.
(#) kiborg válasza Tomi_Bp hozzászólására (») Nov 15, 2010 /
 
HAli!
Kód ? Belső órajel ? Azonos frekvencia ?
Kiborg
(#) Tomi_Bp válasza kiborg hozzászólására (») Nov 15, 2010 /
 
Ugyan azt a kódot töltöm fel (természetesen újrafordítás után) mind az ATMega8-asra, mind az ATMega16-osra, de valami miatt az utóbbin nem megy a Nokia 3310 LCD-je. Azonos freki (belső RC 8MHz).
  1. /* LCD Port */
  2. #define LCD_PORT                   PORTB
  3. #define LCD_DDR                    DDRB
  4.  
  5. /* ATMega8 port pinout for LCD. */
  6. #define LCD_DC_PIN                 PB0  /* Pin 0 */
  7. #define LCD_CE_PIN                 PB2  /* Pin 2 */
  8. #define SPI_MOSI_PIN               PB3  /* Pin 3 */
  9. #define LCD_RST_PIN                PB4  /* Pin 4 */
  10. #define SPI_CLK_PIN                PB5  /* Pin 5 */
Az LCD helyett rádugtam a Port Tester-emet és lám a hiba:
Mega8videó és Mega16videó.
Ha a videón nem látszana rendesen, akkor a 8ason többségében a 0, 2, 3 magas és 5ös alacsony, a 16oson a 0, 2, 4, 5 magas és 3 alacsony.
(#) Fizikus válasza Robi98 hozzászólására (») Nov 16, 2010 /
 
Kicsit elgepelted! A daley.h helyett probald ki a delay.h-t!
(#) Tomi_Bp válasza gtk hozzászólására (») Nov 16, 2010 /
 
Kedves gtk! Nagyon süti lett a simple_driver, mert most átírtam benne a portot C-röl D-re és még azt is gond nélkül vette. Köszi mégegyszer a múltkori segítséget!
Egy kérdés: Az eddig is úgy volt, hogy ha a lcd_putstr paranccsal kiírattam valamit és utána újból valamit, akkor nem egymás után írta, hanem "egymásra"? Erre nincs valami megoldás? Köszike
(#) gtk válasza Tomi_Bp hozzászólására (») Nov 17, 2010 /
 
Hogy erted, hogy "egymasra" irta? Ott a cimzesi lehetoseg, meg az 1. es 2. sor cimzesi lehetoseg.
(#) Robi98 válasza Fizikus hozzászólására (») Nov 17, 2010 /
 
Kipróbáltam úgy is ,de mégis kiírta négyszer,hogy az időbeállításokkal van valami baj(helyesírási)Ja,és pont4x szerepelt a programban az időzítés.

Leírjam a programot ide?
(#) augre hozzászólása Nov 17, 2010 /
 
Sziasztok

kérdés:

avr-doper isp módban virtuális com port

megvalósítható-e ezen keresztül a soros kommunikáció?
(UART)
(#) augre hozzászólása Nov 17, 2010 /
 
Gndolom, az avr-doperben van USB-TTL átalakító.

A doperből kijövő 6 szál közül 2-őt felhasználhatnék-e UART-ra? --> Melyik kettőt?


köszönöm
(#) Ricsi89 válasza augre hozzászólására (») Nov 17, 2010 /
 
Én úgy tudom, hogy nem használható virtuális soros portként.
(#) augre hozzászólása Nov 17, 2010 /
 
Másképpen fogalmazva:

Az avrstudio úgy küldi az adatot mintha sorosporton programozna.
Ezt tudjuk.
A kérdés így:
Soros protokollal küldöm ki az adatot. Vajon a 6 vezeték közül, amelyek a doperből kijönnek, megjelenik valamelyiken az rxd és a txd?

Nagyon kíváncsi vagyok a válaszra.

Köszönöm
(#) zolee1209 válasza augre hozzászólására (») Nov 17, 2010 /
 
Nem, mivel a doper SPI-on kommunikál a cél AVR-rel, ami nem azonos az UART-tal...
(#) Fizikus válasza Robi98 hozzászólására (») Nov 18, 2010 /
 
Ha nem ez az eliras volt a gond, es rendesen fel van Telepitve a WinAVR es az AVRStudio (minden abban a konyvtarban van, ahol az adott program keresi), akkor nem tudom hogy mi lehet a baj.
Rakd fel a kodot, hatha az alapjan tobbet tudunk segiteni.
(#) Robi98 hozzászólása Nov 18, 2010 /
 
Itt a kód :
  1. #include <avr/io.h>
  2. #include <util/delay.h>
  3. //-------------------------
  4. int main(void) {
  5. //-------------------------
  6.  
  7. DDRB=(1<<PB3)|(1<<PB4);
  8.  
  9. while(1) {
  10.  
  11. PORTB|=(1<<PB3);
  12.  
  13. _delay_ms(500);
  14.  
  15. _delay_ms(500);
  16.  
  17. PORTB&=~(1<<PB3);
  18.  
  19. PORTB|=(1<<PB4);
  20.  
  21. _delay_ms(500);
  22.  
  23. _delay_ms(500);
  24.  
  25. PORTB&=(1<<PB4);
  26.  
  27.           }
  28.                  
  29.                   }
(#) Steven19 hozzászólása Nov 19, 2010 /
 
Sziasztok. Volna egy olyan kérdésem ha az AVR Fuse bit-ek közül a Reset Disable bitet bekapcsolom, tehát letiltom a reset lábat akkor HVSP programozási módban azt visszatudom állítani? Válaszaitokat előre is köszönöm.
(#) Reggie válasza Steven19 hozzászólására (») Nov 19, 2010 /
 
Igen, CSAK abban tudod visszaallitani.
(#) Steven19 válasza Reggie hozzászólására (») Nov 19, 2010 /
 
Köszönöm a válaszodat.
Következő: »»   280 / 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