Hallo,
ich habe vor langer Zeit mal ein Prog geschrieben, was den Atxmega als Schieberegister nutzt, nun muß ich Projekt bedingt nicht mehr 32 Bits lesen, sondern 48, also 2 Bytes mehr.
Ok dachte ich, in meinem jugendlichen Leichtsinn, erweiterste halt den Buffer um zwei Bytes und los geht's, aber leider will das mal überhaupt nicht so.
Um nun den Fehler auf dem Grund zu gehen wollte ich die Uart zum ausgeben der gelesen Bits nutzen.
Laut Datenblatt könnte man die an Port Verfügbare Uarte0 (Pin E2/E3) nutzen, nur leider ist Bascom der Meinung, das dies für den 44 Pin xmega16/32 nicht geht, obwohl das Datenblatt mir sagt es geht.
Leider ist meine damalige Entwicklungsumgebung nicht mehr auffindbar, da drauf war ein xmega128, auch die .bas habe ich noch, das wäre zu ideal, aber leider ist die nicht mehr zur Hand, egal.
Wie bekomme ich es hin, das die Porte uart (weil sie frei ist) zu nutzen, oder habe ich im Datenblat und in der Bascomhilfe was falsch verstanden?
Fehlermeldung: "Invalid data type [[0011] 0[USARTE0_CTRLB]...pfad zur Datei .bas
Bascomversion 2.7.7
Vielleicht kann mir da jemand auf die Sprünge helfen.
mfg René
Alles anzeigen
ich habe vor langer Zeit mal ein Prog geschrieben, was den Atxmega als Schieberegister nutzt, nun muß ich Projekt bedingt nicht mehr 32 Bits lesen, sondern 48, also 2 Bytes mehr.
Ok dachte ich, in meinem jugendlichen Leichtsinn, erweiterste halt den Buffer um zwei Bytes und los geht's, aber leider will das mal überhaupt nicht so.
Um nun den Fehler auf dem Grund zu gehen wollte ich die Uart zum ausgeben der gelesen Bits nutzen.
Laut Datenblatt könnte man die an Port Verfügbare Uarte0 (Pin E2/E3) nutzen, nur leider ist Bascom der Meinung, das dies für den 44 Pin xmega16/32 nicht geht, obwohl das Datenblatt mir sagt es geht.
Leider ist meine damalige Entwicklungsumgebung nicht mehr auffindbar, da drauf war ein xmega128, auch die .bas habe ich noch, das wäre zu ideal, aber leider ist die nicht mehr zur Hand, egal.
Wie bekomme ich es hin, das die Porte uart (weil sie frei ist) zu nutzen, oder habe ich im Datenblat und in der Bascomhilfe was falsch verstanden?
Fehlermeldung: "Invalid data type [[0011] 0[USARTE0_CTRLB]...pfad zur Datei .bas
Bascomversion 2.7.7
Vielleicht kann mir da jemand auf die Sprünge helfen.
mfg René
BASCOM-Quellcode
- $regfile = "xm16d4def.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 , Prescalea = 1 , Prescalebc = 1_1
- Ddra = &B11111111
- Ddrb = &B11111111
- Ddrc = &B11111111
- Ddrd = &B00001111
- 'Ddre = &B11111111
- Config Com5 = 19200 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8 'PE2/3 UASRTe0-COM5
- Open "COM5:" For Binary As #2
- '*** SPI config *******************************************************
- Spid_ctrl = &B01000011
- Spid_status = &B00000000
- Spid_intctrl = &B00000010
- Open "Spid" For Binary As #1
- Dim Rx(7) As Byte
- Do
- Input #1 = Rx(1 ) , Rx(2 ) , Rx(3 ) , Rx(4 ) , Rx(5 ) , Rx(6 ) , Rx(7 )
- porta.4=Rx(2).0
- porta.6=Rx(2).1
- Print #2 , "**********RX2******************************"
- Print #2 , "SPID_DATEN=" ; Rx(2) ; " " ; Rx(3) ; " " ; Rx(4) ; " " ; Rx(5); " " ; Rx(6) ; " " ; Rx(7)
- Print #2 , "SPID_DATEN_Binaer=" ; Bin(rx(2)) ; " " ; Bin(rx(3)) ; " " ; Bin(rx(4)) ; " " ; Bin(rx(5))" " ; Bin(rx(6)) " " ; Bin(rx(6))
- Print #2 , "LPF RX1=" ; Bin(rx(2)) ; Bin(rx(3))
- Print #2 , "BPF RX1=" ; Bin(rx(4)) ; Bin(rx(5))
- Print #2 , "BPF RX2=" ; Bin(rx(6)) ; Bin(rx(7))
- Print #2 , "'*********************************************"
- Print #2 , ""
- Loop
- End