-         

Ergebnis 1 bis 3 von 3

Thema: Atmega pegel mit Interrups oder durch Pollen Analysieren?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    05.05.2008
    Beiträge
    51

    Atmega pegel mit Interrups oder durch Pollen Analysieren?

    Anzeige

    Ich habe hier eine Ir Fernbedienung und den Empfänger (Spielzeug) . Nun will ich gerne die Signale Analysieren und sie dann mit ir leds (die am atmega angeschlossen sind ) senden.
    Zum Empfangen habe ich mir ein Tsop1738 geholt.
    Zum senden ir Leds.
    Wie könnte ich diesen ankommenden Pegel am besten analysieren?
    Da das Tsop die signale in Pegel umwandelt brauche ich ein Baustein das ein Pegel in empfänger Kompatieble singnale umwandelt. Oder könnte das der atmega ?

    Die Fernbedienung arbeitet mit diesen chip ats305t und einer Ir led

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    Ich habe vor kurzem eine Routine erstellt. Vorher habe ich mit einem Oszi die Anzahl der Flanken gezählt und dabei war mir aufgefallen, dass nicht nur die runtergezogenen Pegel, sondern auch der Ruhepegel unterschiedlich lang war. Wichtig ist, dass Dein Empfänger die Frequenz der Fernbedienung kann.

    Mein erster "Analysecode":

    $regfile = "m16def.dat"
    $baud = 38400
    $crystal = 16000000

    Stop Watchdog
    Config Watchdog = 2048


    $hwstack = 32 ' default use 32 for the hardware stack
    $swstack = 10 ' default use 10 for the SW stack
    $framesize = 40

    Config Timer2 = Timer , Prescale = 1024
    Config Int0 = Change
    On Int0 Isr_int0
    On Timer2 Isr_tmr2
    Enable Timer2

    Enable Int0

    Enable Interrupts

    Dim Data_cnt As Byte
    Dim Dataw As Long
    Dim Datal(2) As Word At Dataw Overlay
    Dim Datalalt As Long
    Dim Datapos As Byte
    Dim Pausen(32) As Integer
    Dim Zeit As Integer


    Config Pind.2 = Input
    Config Pind.3 = Output
    Config Pind.4 = Output

    Pin_ir Alias Pind.2
    Gnd Alias Portd.3
    Vcc Alias Portd.4

    Reset Gnd
    Set Vcc
    'Set Pin_ir

    Config Portc = Output
    Config Porta = Input


    Led Alias Portc

    Dim B As Integer , I As Integer
    Dim Leds As Byte
    Dim Alt As Byte
    Dim Anzdaten As Byte

    Dim A(512) As Byte

    Dim Vari As Byte
    Fertig Alias Vari.0
    Merk1 Alias Vari.1
    Fstop Alias Vari.2

    Dim X As Integer
    Dim Cnt As Byte
    Print "FB Analyse Atmega 16"
    Cnt = 0
    I = 1
    Do
    If Fertig = 1 Then
    Reset Fertig
    For I = 1 To Anzdaten

    Print Dataw.i;
    Next I
    Print ",";
    For I = 1 To Anzdaten

    Print Pausen(i);
    Print ",";
    Next I


    Dataw = 0
    Reset Fstop
    End If

    Incr X
    If X = 30000 Then
    X = 0
    Toggle Led.2
    End If

    Loop
    End


    'Isr_int0:
    ' $asm
    ' sbis pind,2
    ' cbi portc,4
    ' sbic pind,2
    ' sbi portc,4
    ' $end Asm
    'Return

    Isr_int0:
    Disable Int0
    If Fstop = 0 Then
    Zeit = 0

    Merk1 = Not Pin_ir
    Reset Fertig
    Do
    Incr Zeit
    If Zeit = 800 Then
    If Data_cnt > 22 Then
    Set Fertig
    Set Led.7
    Set Fstop
    Anzdaten = Data_cnt
    End If
    Data_cnt = 0
    Exit Do
    End If

    Loop Until Pin_ir = Merk1

    Toggle Led.0
    If Zeit < 800 Then
    Incr Data_cnt
    Pausen(data_cnt) = Zeit
    If Zeit < 150 Then
    Dataw.data_cnt = 0
    Else
    Dataw.data_cnt = 1
    End If
    End If
    End If
    Enable Int0

    Return

    Isr_tmr2:
    Datalalt = 0

    Return
    Edit:
    Eben entdeckt, dass es ja gar nicht um Bascom geht...
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.04.2005
    Beiträge
    181
    Hallo,

    häng doch das Signal ein einen Pin, der Input Capture kann.
    Dann im Interrupt die Capture Stände jetzt gegen letzen verrechnen
    -> Dauer der Phase

    Das gefällt mir besser als Pollen. Da hat der Controller noch Zeit übrig für andere Sachen.

    Bernhard

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •