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
A project beállításoknál már definiáltam a processzor sebességet 8000000-ra, szóval nem azzal volt a gond.
Szia!
Ez ASM-ben is használható ? Mert nekem nem akarja elfogadni. Az SBI és a CBI utasítások nem fogadják el a szintaktika miatt Vélemény ? Kiborg
ASM-ben is van ilyen. Húúúú de régen is volt .
Hirtelenjében nem tudom hogy lehet-e ezt portokra is, de van egy érzésem hogy lehet. SBI, CBI:
Miért nem C-zel?
Szia!
Köszi, ez, így nekem is működik: .def temp = r16 .equ LED_PORT=PORTB ;Kimeneti port a LED-nek .equ LED_PIN=PINB ;LED port lábak értéke .equ L_R=0 .equ L_G=1 .equ L_B=2 sbi led_port,l_r cbi led_port,L_G Csak amit kérdeztem, abban az volt a vonzó, hogy nem kellett portot és bitet (led_port,l_r) megadni, hanem egy változóra hivatkozott csak. Miért nem C-zek ? Mert még nem fogtam hozzá. Ahhoz sokat kellene tanulnom, szinte mindent az alapoktól. Így hamarabb megírok egy progit, és legalább pontosan tudom, hogy mit csinál(nem a fordító kreál egy kódot) a procim. (JTAG-el nyomon követem esetenként). Igazából ennyi, de azért szívesen kacsintgatnék a C felé. Csak pl hogy konfiguráljak egy Timer0-t, meg ilyen alap dolgoknál akadtam el. Jó lenne pár példaprogram amiből a fordulatokat,szokásokat el lehet lesni, és hogy mit miért. Hallottam olyanról, hogy és-elni kell a kimeneteket,mert egyébként billegnek (vagy mi) és ilyen apróságok,ami kis buktatókat adnak. ASM-ben nincs ilyen, hiszen bitszinten játszok. Kiborg
Üdv!
Egy külföldi fórumon van egy nagyon jó leírás a timerekre: Bővebben: Link Én ebből értettem meg a dolgokat, szerintem remekül leírja. Remélem segítettem! Üdv, Fizzy
Az adatlapon ott vannak a C ill. Assembly nyelvu peldakodok a periferiakhoz(a timerhez is).
A hiba nem a forditaskor keletkezett, hanem valahol a scriptben. A makefile futasa megszakad a hiba helyenel, es mint latod neked az utolso avr-objdump -ig hibatlanul lefutott.
Egyszeru. A master szabadon levo i/o labaira bekotod a slave-k slave select labait. Amelyikkel kommunikalni akarsz, annak a slave selectjet 0-ra rakod, a tobbi 1. Ha vege a kommunikacionak akkor celszeru mind 1-re rakni.
Az adatlapon "Multi-processor Communication Mode" bekezdes alatt le vannak irva a lepesek, hogy mit kell csinalnia a kodnak. Konkretan nincs pelda kod hozza, de ez alapjan mar konnyu megcsinalni (nem sokban ter el a sima UART kezelestol).
Sziasztok!
Megpróbáltam írni/olvasni egy Mega644 eepromját a regiszterei segítségével. Az olvasás sikerült elsőre, de írni nem tudom, pedig mindent úgy csináltam, ahogy az adatlapon van. A kimeneten az
A segítséget előre is köszönöm!
Szia!
C függvényekkel megy az eeprom írás, használtam is a kódban, de szeretném ha az alap módszerrel is menne.
A header fajlbol kilesheted, hogy hogyan lehet programozni. (Vagy az adatlapon ott van az assembly, vagy C pelda).
Az eeprom kezeles ele tegyel kesleltetest, mert ha nincs BOD, akkor lehet hogy alacsony a tap az elejen, es hibazhat az irasnal. Ez csak akkor problema, ha a main elejen mar rogton eepromot akarsz irni. UI: Esetleg a main vegere nem artana egy vegtelen ciklus.
Mondjuk ahogy a kodod elnezem jonak tunik, esetleg csinalj DUMP-ot, hatha a C optimalizacio hianya miatt van valami gond, sose lehet tudni. (Az olvasaskor nem muszaj varni, az EEDR-ben azonnal megjelenik az ertek).
Szia!
Nem tudom, hogy mi az a DUMP, de kipróbáltam más optimalizációval(O2, 03, Os) és ezekkel működik. Tudom, hogy nem kell várni az olvasás előtt(írja is az adatlap), de már annyi mindenre gondoltam, hogy mégis beleraktam a kódba. Mégegyszer köszönöm a segítséget!
A DUMP a leforditott kod visszafejtve(assemblyre), aminek a segitsegevel meg tudod nezni, hogy megfelelo kod keletkezett-e.
Nincs mit.
Köszönöm! Több eszközöm egyenlőre nincs, de mindenféleképpen kifogom próbálni.
Köszönöm a segítséget. Az is lehet,h majd szoftverből oldom meg valami egyedi módon, hogy ne kelljen master.
Szaktársam olyan hogy képtelen C-ben programozni. Asm-ben szinte bármit megtud írni . Gyak vezérek is hidaltak hogy nem volt hajlandó C-ben írni . Anno az első uC-s programjainkat asm-ben kellett írnunk. Mind atmega, mind pic terén ez volt. Buborék rendezéstől kezdve, számológépig, kingiht rider effektusig.
Kényelmesebb lesz majd C-ben ügyködni. TIMER0-al való szimpla LED villogtatás:
Különböző megszakításoknak mik a nevei ITT találhatod. Sok sikert a tanuláshoz .
Meg lehet oldani, de azert jok ezek a hardveres dolgok, mert leveszik a terhet. Nem szabad eltantorodni, neki kell esni azt menni fog. Nem nehezebb, mint kitalalni egy megbizhato szoftveres arbitraciot.
Melyik suli, milyen szak ?
Írtam már pár dolgot ASM-ben. (Volt olyan progi, hogy optimalizálnom kellett,mert nem volt elég a 16k egy Mega16-ban). Majd megpróbálom megtanulni.Idővel, de még hatékonyabb vagyok ASM-ben. Kiborg ui: azért köszi mindenkinek a biztatást és segítséget.
ÓE-KVK-MAI-F1-en tanulok. Azaz Óbudai Egyetem - Kandó Kálmán Villamosmérnöki Kar - Műszer-automatizálás Intézet - Elektronikai-, orvostechnikai műszerek és tesztelés modul.
16k asm-ben . Jesszus mit csinált az a program? Mindig is hatékonyabb lesz az asm, akár mennyire is intelligensre csinálják a complielert. Csak teszem azt megírod az adott programot egy hét alatt, míg C-ben 1-2 nap, ami azért ha nem házi dolog akkor komoly problémát jelent. De am C-ben is lehet asm-et írni, igaz erős megkötésekkel, de lehet. Prog tanárunk nagyon elborult elme. 17 ezer soros asm-et írt pic-re. Másik tanár aki óraadó, szintén nagy koponya. Elsők között volt Magyarországon akik uC-t programoztak, egészen pontosan DSP-t. Ő is mindig asm-ben írta a programjait, de csak azért mert mintavételezésnél nincs sok idő két minta között Idézet: „Mindig is hatékonyabb lesz az asm, akár mennyire is intelligensre csinálják a complielert.” Ez attol fugg, hogy az illeto mennyire ert az asm-hez... es attol is mennyire a C-hez... C-ben is lehet hatekonyan irni, ha ismered a forditok lelki vig=lagat akkor segitheted az optmalizalast -- sokszor kerdezik is, hogy optimalizalashoz ertesz-e. De igen, az egyedi dolgok mindig hatekonyabbak, egy gyarban osszeallitott motor sohasem lesz ugyanolyan mint egy versenyre felkeszitett....
Szerevusztok!
Lassan már 2-3 hete olvasgatom az itt leírtakat. Mindössze elindulnom kellene valahogyan. Azt olvasgatom,hogy az Atmega8 az egyik olyan tipus, amit kezdetnek ajánl a többség. Ha valamelyikőtök megtenné, hogy egy minimum kapcsolás nyák-rajzát megadná, amin a lehetőséghez képest a legtöbb funkció kipróbálható! Még egy prózai kérdés. Otthonosan mozogtok ebben a témában. Biztos tudja valaki, hogy Budapesten hol lehet a legolcsóbban beszerezni az ic-t. Segítségeteket köszi! Még valami! Nem feltétlen ez a típus érdekelne, csak minimum ennyi i/o!
Persze ez evidens, hogy asm-ben, és C-ben mennyire járatos az egyén, és attól függ. Én sajna egyáltalán nem vagyok járatos a complier lelkivilágában .
ITT őket ajánlom, de mindenféleképpen hívd fel előtte őket hogy mi van raktáron, tudtommal itt a legolcsóbb az egész országban. Amikor először mentem oda én is dip tokos atmega8-at akartam venni, de csak atmega16 volt dip tokos közül. De nem bánom, mert az atmega16-nak normálisan vannak kihozva a kivezetések. Am az avr-ekkel egy nagy bajom van, alig lehet kapni, és ahol lehet ott is csak a népszerűbbeket . pl. anno az ATtiny2313-ért fél várost végig kellett járnom.
Lényegében szinte mindegy melyiket veszed. Ugyanúgy kell programozni. Csak tudásban/láb számban/memóriában különböznek. Az atmega16-ot javaslom neked, sok láb, sok tudás. Analóg komparátor, ADC, SPI, TWI, USART, EEPROM, 3 TIMER, BOOT LOADER stb.. Sok sikert!
Hello! Arra lennék kíváncsi hogy a WinAVR vagy AVRStudiot ajánljátok jobban? Eddig az előzőt használtam de most szemezgetek az AVR studioval. Melyiket érdemesebb használni?
Esetleg mindkettőt, ha AVR-t akarsz programozni. Nem alternatívája igazából egymásnak.
WinAVR a windows rendszerre portolt avr-gcc, az AVRStudio meg amibe ez modulként beleépül. Persze AVRStudio nélkül is lehet használni, de kezdésnek abszolút nem ajánlott a parancssoros kézzel írt makefile-al fordítás...
Egy ido utan nem art azt sem ismerni. Pl. a gcc-avr32 fordito egy utasitast rendszeresen felreforditott es ha dolgozni kell, akkor kenyszerul az ember sajatkezuleg kijavitani a forditot a hivatalos patch megerkezteig.
|
Bejelentkezés
Hirdetés |