-
-
Erfahrener Benutzer
Begeisterter Techniker
Klar, ich weiß was Interrupts sind und benutze sie auch sehr häufig.
Hab mir aber über Microcontroller alles selbst beigebracht und desshalb fehlen mir solche Fachbegrifft wie IRQ und ISR vollständig. Aber gut, jetzt hab ich sie gehört und kenne sie auch
(Und weiß entlich wie das in der Fachsprache heist was ich schon seit Jahren anwende)
So aber trotzdem bin ich insgesamt immer noch nicht schlauer:
Die Drehrichtung der Motoren ist mir eigentlich schnurz egal, weil die gebe ich in der Software vor und der L298 ist da 100% zuverlässig das er so rum dreht wie man ihn ansteuert 
Also so weit wie ich da jetzt eine Idee hätte wäre folgendes:
Die Encoderausgänge auf INT0 und INT1 schalten. dann im ISR eine Variable immer +1 Rechnen.
Ein Weiteren Interrupt über einen Timer der z.B. nach 300ms die beiden Variablen miteinander vergleicht und das PWM nach regelt.
Das Problem ist dann nur: Der Encoder bringt z.B. alle 0,3ms einen Impuls.
Dann hängt mein Controller ziemlich häufig in der ISR.
Wie soll er dann die anderen tätigkeiten durchführen ohne impulse vergessen zu zählen? (ich hab ja z.B. noch nen INT für I²C Daten Empfang)
Wenn man den Timer als Counter nimmt ist das egal. Dann springt der Controller nur alle 300ms in ein ISR und wertet aus. aber alle 0,3ms in nen ISR springen, ich weiß nicht dann ist der mir irgendwie zu viel beschäftigt...
Oder hab ich da jetzt immer noch was falsch verstanden?
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen