Forum: Compiler & IDEs Motorsteuerung (3Modi)


von Stefan (Gast)


Lesenswert?

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.

von Besserwisser (Gast)


Lesenswert?

Heimliches Tunen deines Autos ist illegal und führt zum erlöschen der 
Versicherung! Bei einem Unfall bist drann!

von Stefan (Gast)


Lesenswert?

Es geht ja auch um ein Rollerumbau auf Elektroantrieb.

von Besserwisser (Gast)


Lesenswert?

Stefan schrieb:
> Es geht ja auch um ein Rollerumbau auf Elektroantrieb.

Noch schlimmer!

von A. Z. (donvido)


Lesenswert?

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
von Stefan (Gast)


Lesenswert?

Wie limitiere ich den Wert, sodas er langsam ansteigt.

von A. Z. (donvido)


Lesenswert?

In dem du das Delta zwischen zwei Aktualisierungen begrenzt.

von The Weasel (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.