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.