-
        

Ergebnis 1 bis 2 von 2

Thema: Mega8 und TLC2543 AD-Wandler

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    29.01.2009
    Beiträge
    6

    Mega8 und TLC2543 AD-Wandler

    Anzeige

    Hallo,
    ich versuche schon seit einiger Zeit erfolglos den TLC2543 AD-Wandler auszulesen. Im 8-Bit Modus funktioniert es einwandfrei. Aber im 12-Bit Modus bekomme ich nur eine 0, obwohl ich die volle Betriebspannung auf den Eingang lege.

    Hier mein Quelltext:
    Code:
    $regfile = "m8def.dat"
    $crystal = 1000000
    $hwstack = 65
    $swstack = 40
    $framesize = 100
    $baud = 4800
    
    
    Config Portb.1 = Output
    Config Portb.2 = Output
    Config Pinb.3 = Input
    Config Portb.4 = Output
    Config Pinb.5 = Input
    Portb.3 = 1
    
    
    
    Cs Alias Portb.1
    Clock Alias Portb.2
    Ad_eingang Alias Pinb.3
    Ad_ausgang Alias Portb.4
    Eoc Alias Pinb.5
    
    Dim Ausgang As Byte
    Dim Eingang As Word
    
    
    Cs = 1
    
    Do
    
    Ausgang = &B00011100
    Eingang = 0
    
    Cs = 0
    Shiftout Ad_ausgang , Clock , Ausgang , 1 , 8 , 10
    Cs = 1
    Waitms 500
    Cs = 0
    Shiftin Ad_eingang , Clock , Eingang , 1 , 12 , 10
    'Shift Eingang , Right , 3
    Cs = 1
    Print Str(eingang)
    Wait 2
    Loop
    
    End
    Habe beim googlen schon gelesen das mehrere Leute das Problem hatten, aber leider habe ich keine Lösung gefunden.

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    29.01.2009
    Beiträge
    6
    Habs doch noch hingekriegt. Da der AD-Wandlder beim schreiben des Kanals usw. gleichzeitig sendet, muss man genauso viele Takte erzeugen, wie der AD-Wandler Bits sendet.

    Hier der funktionierende Code:
    Code:
    $regfile = "m8def.dat"
    $crystal = 1000000
    $hwstack = 65
    $swstack = 40
    $framesize = 100
    $baud = 4800
    
    
    Config Portb.1 = Output
    Config Portb.2 = Output
    Config Pinb.3 = Input
    Config Portb.4 = Output
    Config Pinb.5 = Input
    Portb.3 = 1
    
    
    
    Cs Alias Portb.1
    Clock Alias Portb.2
    Ad_eingang Alias Pinb.3
    Ad_ausgang Alias Portb.4
    Eoc Alias Pinb.5
    
    Dim Ausgang As Word
    Dim Eingang As Word
    
    
    Cs = 1
    
    Do
    
    Ausgang = &B0001110000011100
    Eingang = 0
    
    Cs = 0
    Waitus 10
    Shiftout Ad_ausgang , Clock , Ausgang , 1 , 16 , 10
    
    Cs = 1
    
    Waitms 100
    Cs = 0
    Waitus 10
    Shiftin Ad_eingang , Clock , Eingang , 1 , 16 , 10
    Shift Eingang , Right , 4
    Cs = 1
    Print Str(eingang)
    Wait 2
    Loop
    
    End                                                         'end program

Berechtigungen

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