EW AVR en interrupt? - Niet operat ...

E

elcielo

Guest
unsigned int g_usec; ​​nietig TimerInit (void) {TCCR0 = 0x00; / / stop ASSR = 0x00; / / set async mode TCNT0 = 0xC6; / / set count OCR0 = 0x3A; TCCR0 = 0x01; / / start timer TIMSK = 0x01; } leegte vertraging (unsigned int us) {g_usec = 0; if (ons> 0) en (g_usec
 
Option-H mag niet meer dan een keer worden gedefinieerd:-H1895 ^ + ----- wat?
 
hi .. ik ben het gebruik van delay routine op basis van topi's hier beschreven: http://www.elektroda.pl/eboard/viewtopic.php?t=43802&highlight=avr+delay Werkt prima voor mij en er is geen timer ... in mijn app ik ben via een timer voor andere doeleinden ... de mijne ziet eruit als: void delayus (unsigned int ons) {while (us -) __ delay_cycles (10);} je moet berekenen vertraging constant (10 in mijn geval) HW overeenkomen met je .. IOW osc freq. je nodig hebt om inavr.h voor de code zijn onder andere .. eerste ... Ik zou beginnen timer door vertraging routine. in je code timer loopt de hele tijd en dan verspil je MCU tijd door het uitvoeren van niet benodigde interrupt. ander ding ... uw g_usec is niet veilig ... het overflow dan int waarde (0xffff) na verloop van tijd ... dit kan leiden tot vreemde gedrag wat te annuleren
 
[Quote = elcielo] unsigned int g_usec; ​​nietig TimerInit (void) {TCCR0 = 0x00; / / stop ASSR = 0x00; / / set async mode TCNT0 = 0xC6; / / set count OCR0 = 0x3A; TCCR0 = 0x01; / / start timer TIMSK = 0x01;} nietig vertraging (unsigned int us) {g_usec = 0; if (ons> 0) en (g_usec
 

Welcome to EDABoard.com

Sponsor

Back
Top