Forum: Mikrocontroller und Digitale Elektronik H/L Signale einlesen und "speichern"


von danczi (Gast)


Lesenswert?

Hallo!
Habe folgendes problem:
ich habe einen fototransistor wo ich über einen transistor eine led 
angeschlossen habe. ich habe bei logisch 0 0V und bei logisch 1 5V.
soweit sogut.
jetzt wollte ich in bascom das so programmieren das wenn ich bei einer 
fernbedienung auf eine taste drücke, das der atmega8 die signalfolge 
speichert! ich habe das bis jetzt so programmiert das der atmel jede ms 
"nachschaut" welches signal er hat! wie kann ich das jetzt am besten 
machen das er dann so signalfolge speichert?

mfg danczi

von eProfi (Gast)


Lesenswert?

Ganz einfach:

do{
  Signal messen und speichern
  1 ms warten
  }
  while (speicher noch nicht voll)

Aber wer sagt Dir, dass 1 ms ausreicht?
Die meisten Fernsteuerungen (Ausnahme einige Sony) arbeiten mit 
moduliertem Licht, d.h. es treten 2 Frequenzen auf: die Trägerfrequenz 
und die Modulation (Informationsbits).
Es kann nun sein, dass Du genau in ein Loch der Trägerfrequenz fällst.

Du brauchst einen demodulierenden Empfänger, sowas wie den TSOPxxxx.
Benutze mal die erweiterte Forum-Suche 
http://www.mikrocontroller.net/search

Des weiteren würde ich nicht mit konstanter Frequenz samplen, da dadurch 
größere Ungenauigkeit entstehen kann.
Besser: messe und speichere die Zeit zwischen den Signal-Wechseln.

Die meisten µC haben dafür die Timer-Capture-Funktion.

von danczi (Gast)


Lesenswert?

Hallo

ja so wollte ich das eh machen, dass ich die zeit messe bis sich das 
signal ändert. aber diese zeit muss ich in einer variable abspeichern 
und das sind ja
sehr sehr viele zeiten das heißt ich müsste auch sehr sehr viele 
variablen definieren. kann ich das in bascom irgendwie machen das wenn 
er ein signal abspeichern muss das er sich selber eine variable 
definiert? mfg

von Karl H. (kbuchegg)


Lesenswert?

Schon mal was von Arrays gehört?

von danczi (Gast)


Lesenswert?

nein! was ist das?

von lightninglord (Gast)


Lesenswert?

Ein Array ist ein Feld von Variablen. es ist sozusagen eine Variable mit 
einer "Nummerierung"

z.B.

DIM meinevariable[10] as BYTE


Das ist jetzt ein Array aus 10 Bytes die man mit meinevariable[0] .... 
meinevariable[9] ansprechen kann. Man kann sogar eine andere Variable 
als Zeiger benutzen z.B. meinevariable[a].

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.