hallo leude, folgender code: uint16_t start_conv(uint8_t muxchannel) { uint16_t conv_data; if(muxchannel == 1) { PORTA &= ~(1<<PA2); PORTA &= ~(1<<PA3); } if(muxchannel == 2) { PORTA = (1<<PA2); PORTA &= ~(1<<PA3); } if(muxchannel == 3) { PORTA &= ~(1<<PA2); PORTA = (1<<PA3); } _delay_us(8); ...............................] Die Routine wird 3mal hintereinander aufgerufen und das delay funktioniert genau einmal und bei den bei 2 darauffolgenden aufrufen, geht es nicht! Woran zur hölle kann das bitte liegen. Interrupts ausgeschaltet bringt an dieser stelle auch nix. ciao georg
@ Georg Bauerfeind (Firma igus-its) (shorsh) >Die Routine wird 3mal hintereinander aufgerufen und das delay >funktioniert genau einmal und bei den bei 2 darauffolgenden aufrufen, >geht es nicht! Das Problem liegt sicher woanders. Optimierung eingeschaltet (-O2, -O3 oder -Os) ? MFG Falk
thx, daran lags nicht, die delay funktioniert, war nur ein fehler i.d. testroutine.... ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.