Tobi88 schrieb:
> Danke für den Tipp......aber ich dachte das der Mikrocontroller für 3
> IFs nicht so lange braucht... ok zugegeben ich habe dahinter auch noch 2
> Stakemaschinen aber trotzdem das sind nur 2 switches wo nichts gemacht
> wird....also ist in dem fall dein Tipp den Prescaler rauf zu setzen?
> hätte gedacht dass es eig gut is wenn der Presclaer klein is
100 Takte sind gar nichts. Guck dir mal im *.lss an, was der Compiler
daraus gemacht hat. Jeder Befehl braucht min. 1 Takt.
Aber deine Lösung taugt nichts.
Schalt den Timer Interrupt ein.
1 | ISR(Timer0_OVF_vect)
|
2 | {
|
3 | counter++;
|
4 | if(counter == 101) Counter = 0;
|
5 | }
|
6 | .
|
7 | .
|
8 | while(1)
|
9 | {
|
10 | if (counter >= PWM1) PORTB |= (1 << PB1); else PORTB &= ~(1 << PB1);
|
11 | //Das darf auch in der ISR stehen.
|
12 | .
|
13 | .
|
14 | }
|
Dann kannst du den Timer auf Prescaler = 1 lassen. Ich würde aber soweit
runter gehen, daß es gerade nicht flackert. Wenn es Leds sind.
Und der sei() bleibt dann auch stehen.
mfg.