Hallo
In einer TIMER-ISR (1ms) werden Zaehler hochgezaehlt; diese Zaehler sind vom TYP volatile uint8_t.
Diese Zaehler verwende ich im Programm, u.a.
CodeBox C
oder auch
CodeBox C
zwar sind die Zaehler jeweils vom Typ volatile uint8_t, aber muesste ich nicht die Vergleiche/Rechenoperationen per cli()/sei() vor Veraenderung schuetzen,will heissen:
CodeBox C
oder auch
CodeBox C
bzw anstatt mit cli()/sei() zu arbeiten besser das SREG zwischenspeichern, cli(), SREG wieder umspeichern
mfg
Hero_123
In einer TIMER-ISR (1ms) werden Zaehler hochgezaehlt; diese Zaehler sind vom TYP volatile uint8_t.
Diese Zaehler verwende ich im Programm, u.a.
CodeBox C
if(zaehler2_t0 >= USART_WRITE) { /* 70 ms */ if(zaehler2_t0 > zaehler21_t0)zaehler21_t0 = zaehler2_t0; zaehler2_t0 = 0;
oder auch
CodeBox C
uint8_t val; /* Neustart */ zaehler1_t0 = 0; DDRC |= (1 << DDC3) ; /* Pin C3 als Ausgang - Summer ON */ PORT_ON(PORTD, PD5); /* LED ON */ while(zaehler1_t0 < 230); PORT_OFF(PORTD, PD5); /* LED OFF */ DDRC &= ~(1 << DDC3) ; /* Pin C3 als Ausgang - Summer OFF */ zaehler1_t0 = 0;
zwar sind die Zaehler jeweils vom Typ volatile uint8_t, aber muesste ich nicht die Vergleiche/Rechenoperationen per cli()/sei() vor Veraenderung schuetzen,will heissen:
CodeBox C
cli(); if(zaehler2_t0 >= USART_WRITE) { /* 70 ms */ if(zaehler2_t0 > zaehler21_t0)zaehler21_t0 = zaehler2_t0; zaehler2_t0 = 0; sei();
oder auch
CodeBox C
uint8_t val; /* Neustart */ cli(); zaehler1_t0 = 0; sei(); DDRC |= (1 << DDC3) ; /* Pin C3 als Ausgang - Summer ON */ PORT_ON(PORTD, PD5); /* LED ON */ while(zaehler1_t0 < 230); PORT_OFF(PORTD, PD5); /* LED OFF */ DDRC &= ~(1 << DDC3) ; /* Pin C3 als Ausgang - Summer OFF */ cli(); zaehler1_t0 = 0; sei();
bzw anstatt mit cli()/sei() zu arbeiten besser das SREG zwischenspeichern, cli(), SREG wieder umspeichern
mfg
Hero_123