- LiFePO4 Speicher Test         
Ergebnis 1 bis 9 von 9

Thema: Serialin mit XMEGA

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578

    Serialin mit XMEGA

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    ich möchte mithilfe des Config Serialin Befehls eine Sub beim Eintreffen eines "CR" ausführen. Jedoch springt der XMEGA64A3 nie in die Sub. Weiß jemand, woran das liegen könnte?
    Hier der Code:
    Code:
    $regfile = "xm64a3def.dat"
    $crystal = 32000000
    $hwstack = 64
    $swstack = 40
    $framesize = 40
    
    $lib "xmega.lib"
    $external _xmegafix_clear
    $external _xmegafix_rol_r1014
    
    Config Osc = Disabled , 32mhzosc = Enabled
    Config Sysclock = 32mhz
    
    
    Declare Sub Serial1charmatch()
    
    
    Config Com2 = 38400 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8
    
    Config Serialin1 = Buffered , Size = 100 , Bytematch = 13
    
    Open "COM2:" For Binary As #1
    
    
    Dim Datastring As String * 10
    
    
    Config Priority = Static , Vector = Application , Lo = Enabled
    Enable Interrupts
    
    
    
    Do
    
    
       !nop
    
    
    Loop
    
    End
    
    
    Sub Serial1charmatch()
       Input #1 , Datastring , Noecho
       Print #1 , "Empfangen!"
    End Sub
    Vielen Dank & Gruß
    Chris

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.02.2006
    Beiträge
    982
    Servus Chris,
    vllt raff ich's gerade einfach nicht..aber ich sehe auch nich von wo die sub aufgerufen wird.
    Nam et ipsa scientia potestas est..

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    Hi,

    die Sub ist in dem Fall eine ISR, d.h. wenn über die UART ein CR empfangen wird, löst das einen Interrupt aus und dieser springt dann in die SUB

    Gruß
    Chris

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Du musst den Med Interruptlevel aktivieren.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    Hi,

    du hast Recht ... Aber ich dachte, "Enable Interrupts" aktiviert den MED Interruptlevel?!

    Vielen Dank & Gruß
    Chris

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.02.2006
    Beiträge
    982
    Ah, ok..war irgendwie gerade darauf dass es als ISR deklariert werden muss.
    Bau mal $baud1 mit ein und schau ob sich was tut.
    Nam et ipsa scientia potestas est..

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von Che Guevara Beitrag anzeigen
    Aber ich dachte, "Enable Interrupts" aktiviert den MED Interruptlevel?!
    Ein Enable Interrupts setzt das I-Flag im SReg und erlaubt die gesetzten Interrupts grundsätzlich. Der dem gewählten Interrupt entsprechende Level muss beim XMega aber aktiviert werden, sonst geht gar nix.
    Hab' aber irgendwie in Erinnerung, dass Mark standardmäßig den Med-Level erlauben wollte. Kann's sein, dass Du eine etwas ältere Bascom-Version verwendest ?

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    Hm evtl. hab ich das auch blos mal irgendwo aufgeschnappt... Meine Version ist die 2.0.7.2.
    Vielen Dank nochmal für die schnelle Hilfe

    Gruß
    Chris

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Nachtrag: Wenn Du Config Priority im Code aktiv hast, werden nur die Levels erlaubt, die Du dort angibst, da wird dann angenommen, dass Du gezielt selbst eingreifen willst.
    Lässt Du Config Priority weg, so wird per Default der Med-Level aktiviert, damit die Kiste schon mal läuft.
    Dein Fehler war also das gezielte Erlauben des falschen Levels.

Ähnliche Themen

  1. Xmega auf MAC?
    Von Snow Wolf im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 1
    Letzter Beitrag: 18.09.2011, 01:18
  2. Config Serialin im Programm aufrufen?!
    Von Fallback im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 12.07.2011, 10:55
  3. Serialin Buffer
    Von Red im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 13
    Letzter Beitrag: 13.11.2008, 09:23
  4. Problem mit Buffered serialin
    Von hululu im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 25.08.2006, 21:31
  5. problem mit config serialin=buffered...
    Von Bluesmash im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 09.01.2006, 21:57

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad