Auf einen Timer werde ich sowieso umsteigen, spätestens wenn ich ne externen Taktquelle dranlöte.
Ich hatte dazu auch schonmal ne Funktion geschrieben, nur damit hat sich der Sensor gar nicht gemeldet. Ich vermute sowieso das der interne Takt da nicht grad hilfreich ist.
Code:
volatile uint8_t us_sek=0; //dient zum austausch zwischen interrupt-routine und zeitfunktion
ISR(TIMER0_COMP_vect){ //interrupt routine: soll nach eine mikrosekunde // "us_sek" um 1 hochzählen
us_sek++;}
void timer0_init(void){
TCCR0=(1<<CS00); // timer0 läuft ohne taktteiler
TIMSK=(1<<OCIE0);//compare match interrupt freigeschaltet
OCR0=10; // compare match wert
}
void wait_us(uint8_t sek){
us_sek=0;
while(us_sek!=sek){}} //wartet solange bis soviele mikrosekunden
// rum sind wie "sek" vorgibt
Aber nochmal zum Problem mit dem Code mit den Zeitschleifen.
Ich habe nun festgestellt, dass (während der ISP-Stecker nicht verbunden ist), wenn ich den Strom anstelle und dann ganz schnell aus und wieder an, der Sensor läuft. Hat vielleicht jemand eine Idee dazu?
Lesezeichen