-
        

Ergebnis 1 bis 4 von 4

Thema: Problem mit Bascom Software UART und ATmega8

  1. #1

    Problem mit Bascom Software UART und ATmega8

    Anzeige

    Liebes Doktor Sommer Team ,
    ich bin vor kurzen von Pic (Assembler) auf Atmel (Bascom) umgestiegen, nach einigen Tests mit dem Hardware UART wollte ich mit dem Software UART spielen. Habe ein Program geschrieben mit dem ich jede Sekunde "Start" auf die Serielle Schnittstelle schreibe. Dann wollte ich die Empfangsleitung testen indem ich inkey prüfe und eine LED aufleuchten lasse wenn Daten da sind, aber das funktioniert nicht.
    Mein Programm sieht so aus.
    Code:
    $regfile = "m8def.dat"
    $crystal = 8000000
    Baud = 19200
    
    $hwstack = 32                                         
    $swstack = 10                                       
    $framesize = 40                       
    
    Config Portd.5 = Output
    Config Portd.6 = Output
    
    Open "comc.1:19200,8,N,1" For Output As #1
    Open "comc.0:19200,8,N,1" For Input As #2
    
    Led Alias Portd.5
    
    Dim B As Byte
    Dim W As Byte
    
    Enable Interrupts
    Do
    Print #1 , W
    W = W + 1
    
    B = Inkey(#2)
    If B > 0 Then
       Led = 1
    End If
    Wait 1
    Led = 0
    Loop
    
    end
    Code Tags eingefügt (Dr.Sommer)

    Das senden funktioniert ohne Probleme nur ich bekomme die LED nicht zum blinken bringen. Wenn ich inkey mit waitkey austausche klappt es, aber das hilft mir nicht weiter.
    Währe nett wenn jemand eine idee hätte was es sein kann.

    Grüße Denis

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.02.2005
    Ort
    NRW-Bergisches Land
    Beiträge
    311
    Hi,
    ich denke, das Inkey und ein Soft UART ist eine schlechte Kombination.
    Der Soft UART hat ja keinen Buffer. Somit wäre es ein grosser Zuffal, dass die Daten auch exakt anliegen wenn der Programmablauf grad vorbei kommt.
    Das geht nur beim Hardware UART.
    Wofür enablest du die Interrupts?
    Es sollte auch zu Beginn "$Baud = ..." heissen.
    Gruß RePi!


    *** Holzhacken ist deshalb so beliebt, weil man bei dieser Tätigkeit den Erfolg sofort sieht. ***
    *** (Albert Einstein) ***

  3. #3
    Hallo repi64, das enable Interrupt ist noch ein überbleibsel von tests mit dem Hardware UART, du hast recht wenn ich Inkey ständig abfrage funktioniert es.
    Danke für den Tip.
    Grüße Buzii

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    34
    Beiträge
    979
    Ich habe mal bei verwendung der Software UART den RX zusätzlich noch auf einen Interrupt gelegt, somit konnte ich auch mit der software UART die daten interruptgesteuert abholen.

    gruss Bluesmash

Berechtigungen

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