Moin Leute, ich wollte eine Motorsteuerung programieren mit einem "ECO-Mode", dass bedeutet, wenn ich den Poti ganz drehe soll der Wert langsam (wenn möglich einstellbar) nach oben gehen. Mein aktuelles Programm funktioniert, aber ohne den ECO-Mode. ======================================================================== = // // Motorsteuerung.c // #include <avr/io.h> #include <avr/interrupt.h> volatile uint16_t reinit=0,tmp=0; ISR(TIMER0_OVF_vect) { PORTB ^=(1<<0); TCNT0 = reinit; } ISR(ADC_vect) { tmp = ADCL + 256 * ADCH; tmp /=4 reinit=tmp; ADCSRA |= (1<<6); } int main(void) { ADMUX |= (1<<REFS0); ADCSRA = 0b11001111; DDRB = 255; TCCR0B |= (1<<CS02); TIMSK0 |= (1<<0); sei(); while (1) { } } ======================================================================== = Vielen Dank schonmal im Vorraus.
Heimliches Tunen deines Autos ist illegal und führt zum erlöschen der Versicherung! Bei einem Unfall bist drann!
Die Änderungsrate von
1 | reinit
|
muss in der Main limitiert werden. edit: kann auch in der IRQ passieren, wenn die Updaterate bekannt ist.
:
Bearbeitet durch User
Du solltest viel mehr Kommentare einfügen. Ein ein paar Wochen wirst du nicht mehr wissen was jede Zeile macht.
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.