Klar kann er das!
Ganz einfach ginge das z.B. mit einem Interrupt und einem der beiden Timer, die der Mikrocontroller hat.
Weißt Du in Grundzügen wie ein Interrupt funktioniert und wie man mit Timern umgeht?
Gruß,
Daniel
Ich möchte an meinem Modellflieger Blinklichter etc. über die Fernsteuerung steuern.
Den ATtiny-13 oder 25 mit einem Blinklichtprogramm zu bestücken, bekomme ich hin. Ich möchte ihn aber nicht mit einen Taster am Boden steuern sonder in der Luft auch gerne an und ausschalten.
Daher meine Frage: Kann man mit Bascom ein Programm schreiben das folgendes macht:
Input Frequenz A (1ms) = Licht an
Input Frequenz B (2ms) = Blinker an
Input Frequenz C (3ms) = Licht aus
Ich weis das z.B. der ATtiny13 Servos steuern kann und das mit einfachsten Befehlen, also müsste er ja wenn er Frequenzen raus geben kann auch welche empfangen können oder?
Vielen Dank im Voraus
Klar kann er das!
Ganz einfach ginge das z.B. mit einem Interrupt und einem der beiden Timer, die der Mikrocontroller hat.
Weißt Du in Grundzügen wie ein Interrupt funktioniert und wie man mit Timern umgeht?
Gruß,
Daniel
Nein noch nicht. Bin mit Bascom noch nicht so sicher.
Es wäre nett wenn du mir das ein wenig erläutern kannst.
Gruß Glenn
Okay - fangen wir mal mit Interrupts an. Dazu gibt´s hier eine gut verständliche Erklärung:
http://halvar.at/elektronik/kleiner_...rs/interrupts/
Der ATTiny13 bzw. 25 hat zwar nicht die "klassischen" Interrupt-Eingänge INT0 und INT1 (wie bei halvar beschrieben), sondern nur sogenannte PinChange-Interrupteingänge (PCINT0 - 5). Wenn Dir bis dahin alles klar ist, können wir mal ein Beispiel mit einem PCINT programmieren!
Jein - jein13 und jein25. Beide haben zwar nicht ~0 UND ~1, aber Du nennst sie ja zu Recht "klassisch" und das ist wohl der Grund, dass auch hier wenigstens einer zu finden ist. Priorisiert gleich nach dem RESET, also am Anfang der Interrupttabelle - und das macht ihn wertvoller als die PCINTs.... fangen wir mal mit Interrupts an ... ATTiny13 bzw. 25 hat zwar nicht die "klassischen" Interrupt-Eingänge INT0 und INT1 ...
Ciao sagt der JoeamBerg
...oder mit einem einfachen Zähler die Impulslänge messen:Ganz einfach ginge das z.B. mit einem Interrupt und einem der beiden Timer...
zähler=0
while (Eingang_Servosignal == low) ' warten auf Startflanke vom Servoimpuls
while (Eingang_Servosignal == high) zähler++ ' warten auf Stopflanke vom Servoimpuls
if (zähler > Wert_Licht_an) then Licht_an
if (zähler > Wert_Blinker_an) then Blinker_an
if (zähler > Wert_Licht_aus) then Licht_aus
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hallo Bow-Hunter,
schau Dir dazu auch mal den Bascom Befehl "Pulsein" und "Pulseout" an. Sehr einfach einen RC-Empfänger damit einzulesen. Wenn möglich solltets du dir die empfangenden Werte mit print auf einem PC Terminal oder LC-Display anzeigen lassen um zu prüfen was z.B in Neutralstellung von den einzenlen Kanälen eingelesen wird um ggf das Programm dementsprechen anzupassen.
Das was du suchst nennt sich "Tastfunktion".
Viele Grüße
Jörg
Lesezeichen