AVR - deklaracia ISR v inom subore
Moderátori: psichac, Moderátori
AVR - deklaracia ISR v inom subore
Zdravim,
AVRStudio 6.2, Atmega8
Chcem presunut deklaraciu ISR (TIMER0_OVF_vect) z main.c do ineho ceckoveho suboru. Akonahle to urobim, ISR prestane fungovat.
Nastavujem v nom len jeden flag a main-e vykonam nejaku akciu a zhodim ho.
Kompilator po presune ISR nevyhlasi ziahnu chybu ani warning. Treba nieco specialne nastavit ? Ide to vobec ?
Diky
AVRStudio 6.2, Atmega8
Chcem presunut deklaraciu ISR (TIMER0_OVF_vect) z main.c do ineho ceckoveho suboru. Akonahle to urobim, ISR prestane fungovat.
Nastavujem v nom len jeden flag a main-e vykonam nejaku akciu a zhodim ho.
Kompilator po presune ISR nevyhlasi ziahnu chybu ani warning. Treba nieco specialne nastavit ? Ide to vobec ?
Diky
0
Re: AVR - deklaracia ISR v inom subore
Samozrejme ze subor je sucastou projektu. Len ked ho presuniem, tak bohuzial flag zostava stale na nule. Tak ako ho zadeklarujem na zaciatku.
0
Re: AVR - deklaracia ISR v inom subore
Neviem, či to môže súvisieť, každopádne je daný flag deklarovaný ako volatile?
0
Re: AVR - deklaracia ISR v inom subore
jasne !! To su veci , ktore pouzivam davno. Bez toho by mi to neslo ani v main-e.
mam aj includy na io.h a interrupt.h a nic.
Skusim este vypnut optimalizaciu.
mam aj includy na io.h a interrupt.h a nic.
Skusim este vypnut optimalizaciu.
0
Re: AVR - deklaracia ISR v inom subore
Tak nepomohlo ani vypnutie optimalizacii. Nemate niekto nejaky napad ?
Diky
Diky
0
-
- Ultimate člen
- Príspevky: 2572
- Dátum registrácie: 20 Júl 2010, 00:00
- Bydlisko: okolie KE
- Vek: 27
Re: AVR - deklaracia ISR v inom subore
Ako máte tú premennú, ktorá je zdieľaná medzi viacerými súbormi, deklarovanú? Je možné, že proste v pamäti existujú dve tieto premenné, a preto sa dáta neprenášajú?
0
Re: AVR - deklaracia ISR v inom subore
mam main.c. V nom include timer.h. V timer.h je deklarovana premenna doDigit ako volatile static unsigned char. Dalej mam timer.c kde je include na timer.h. Dalej tu chcem mat ISR na timer overflow a tam to konci
Ked mam ISR v main.c tak je vsetko OK
Ked mam ISR v main.c tak je vsetko OK
0
-
- Ultimate člen
- Príspevky: 1639
- Dátum registrácie: 23 Jan 2008, 00:00
- Bydlisko: Trenčianska Turná
- Vek: 33
- Kontaktovať používateľa:
Re: AVR - deklaracia ISR v inom subore
Pravdupovediac, ked som programoval atmegy, neodarilo sa mi dostať ISR() do ineho suboru ako main.c tak aby fungoval. Vľetky normalne funkcie a premenné sa dali presunuť mino main.c (nezabudnuť na klučove slovo extern) ISR nie je štandardna súčasť C jazyka, tal to asi zavisi od kompilatora.
Napr na texas procakoch mi finguje mam prerušenie mimo main.c. Napr v súbore komunikacia.h si deklarujem v komunikacia.c si definujem celu rutinu prerusenia ale už bez extern klúčového slova a následne includnem komunikacia.h do main.c
Napr na texas procakoch mi finguje mam prerušenie mimo main.c. Napr v súbore komunikacia.h si deklarujem
Kód: Vybrať všetko
extern __interrupt void i2c_int1a_isr(void);
0
http://mkbci.com
FEL UNIZA 2015, Ing.
ľudstvo je vírus ktorý napadol Zem
nerobme si ťažkú hlavu z debilov čo nám ani po členky nesiahajú, buďme radi že my dačo dokážeme a smejme sa im akí sú sprostí
FEL UNIZA 2015, Ing.
ľudstvo je vírus ktorý napadol Zem
nerobme si ťažkú hlavu z debilov čo nám ani po členky nesiahajú, buďme radi že my dačo dokážeme a smejme sa im akí sú sprostí
Re: AVR - deklaracia ISR v inom subore
Napriklad v c++ sa mi podarilo dat ISR do objektu. Mozno podobne by to islo aj v c. Pozriem ten c++ kod. Bolo to uz davnejsie
0
Re: AVR - deklaracia ISR v inom subore
Bezne pouzivam ISR v inom subore a nemal som ziadny problem......podla toho co pises, by to malo byt ok. Este je mozne,ze z nejakeho ineho dovodu sa prerusenie nevykona, ale ISR v inom subore bez problemov funguje.
0
Re: AVR - deklaracia ISR v inom subore
Tiez sa mi to zda divne. Pouzival som usart zo zawinovej knizky o AVR a tam je ties ISR v inom subore ako main a ide to. Skusim vutvorit novy projekt iba s tymto a postupne pridavat funkcie. Uvidim co mi to stopne.
0
Re: AVR - deklaracia ISR v inom subore
skus projekt iba zlinkovat a pozri co sa stane, ci to bude v poriadku. Ak tam nebude ziaden zadrhel, tak by to mal aj kompilator skompilovat bez problemov.
Nepoznam sice avr-studio, nepouzivam to, ale snad sa to da..
Nepoznam sice avr-studio, nepouzivam to, ale snad sa to da..
0
Re: AVR - deklaracia ISR v inom subore
Prave som to odskusal, ISR() tamn da, aj ked je v inom subore.
ISR tam neda, ked v "podsubore" nemas #include <interrupt.h>
Mrkni do *.lss , najdes odpoved a navod ako slusne pisat kod.
ISR tam neda, ked v "podsubore" nemas #include <interrupt.h>
Mrkni do *.lss , najdes odpoved a navod ako slusne pisat kod.
0
Re: AVR - deklaracia ISR v inom subore
interrupt.h mam pre istotu aj v main aj vo vedlajsom subore. Na tie lss kuknem.
0
Re: AVR - deklaracia ISR v inom subore
Takze skusal som program zo zawinovej knizky (str.20, priklad 1.) . Vsetko v jednom subore - slape to OK.
Presunul som deklaraciu pocitadla i do test.h a v test.c mam obsluhu ISR. Vsetko slape OK.
Takze problem bude v povodnom programe. Skusim postupne pridavat jednotlive funkcie a uvidim co mi to tam robi paseku !
Presunul som deklaraciu pocitadla i do test.h a v test.c mam obsluhu ISR. Vsetko slape OK.
Takze problem bude v povodnom programe. Skusim postupne pridavat jednotlive funkcie a uvidim co mi to tam robi paseku !
0