tholan
05.02.2007, 14:44
Hi,
ich leg mir gerade die Karten mit dem Empfang von MIDIdaten
am ATtiny2313 über die USART.
Der Compiler meckert, er könne UCSRB nicht beschreiben.
Desgleichen kennt er wohl das Registerbit Ucsra.rxc nicht.
Der Code läuft prima auf dem ATMega8.
Ich habe die Datenregister UCSRA/B/C in den Datenblättern miteinander verglichen.
Bis auf ein Bit (Bit7 URSEL in Register C gibts beim Tiny nicht) entsprechen die sich.
Weiß da wer was?
$regfile = "ATtiny2313.DAT" 'Funktioniert genausowenig mit der 2313DEF.DAT
$crystal = 20000000
Ucsrb = &B00011000 'Senden und Empfangen ein. Mag der Compu
Ucsrc = &B10000110 'Konfiguration:8N1,asynchron.
Ubrr = 39 'Baudratencode für 31250Baud bei 20MHz
Ddrd = &HFE 'MIDI RX-Pin auf Eingang schalten
Portd.0 = 1 'und Pullup enablen.
Ddrb = &HFF 'Komplettes Datenrichtungsregister "b" auf Ausgang
Dim Status As Byte 'Deklarationen
Dim Note_on As Byte
Dim Note_off As Byte
Dim Note_value As Byte
Dim Velo_value As Byte
Wait 5 'Warten, bis der Poly61 gebootet hat
Portd.5 = 1 'Debugging-LED einschalten '
Do
If Ucsra.rxc = 1 Then
Status = Udr
If Status = &H90 Then
While Ucsra.rxc = 0
Wend
Note_value = Udr
While Ucsra.rxc = 0
Wend
Velo_value = Udr
If Velo_value > 0 Then
'damit hätten wir erstmal alle Infos, um eine Taste zu betätigen
'Kopfschmerzen bereiten mir an dieser Stelle noch
'die unterschiedlichen Möglichkeiten des Note off.
end if
End If
End If
Loop
Fehlermeldungen:
Error : 46 Line : 3 Assignment error [UCSRB: 0 &B00011000: 112] , in File : C:\WINDOWS\DESKTOP\POLY61MIDI\POLY61MIDI\POLY61MID I.BAS
Error : 31 Line : 17 Invalid datatype [ 0] , in File : C:\WINDOWS\DESKTOP\POLY61MIDI\POLY61MIDI\POLY61MID I.BAS
Error : 31 Line : 20 Invalid datatype [ 0] , in File : C:\WINDOWS\DESKTOP\POLY61MIDI\POLY61MIDI\POLY61MID I.BAS
Error : 31 Line : 23 Invalid datatype [ 0] , in File : C:\WINDOWS\DESKTOP\POLY61MIDI\POLY61MIDI\POLY61MID I.BAS
thx,
tholan
ich leg mir gerade die Karten mit dem Empfang von MIDIdaten
am ATtiny2313 über die USART.
Der Compiler meckert, er könne UCSRB nicht beschreiben.
Desgleichen kennt er wohl das Registerbit Ucsra.rxc nicht.
Der Code läuft prima auf dem ATMega8.
Ich habe die Datenregister UCSRA/B/C in den Datenblättern miteinander verglichen.
Bis auf ein Bit (Bit7 URSEL in Register C gibts beim Tiny nicht) entsprechen die sich.
Weiß da wer was?
$regfile = "ATtiny2313.DAT" 'Funktioniert genausowenig mit der 2313DEF.DAT
$crystal = 20000000
Ucsrb = &B00011000 'Senden und Empfangen ein. Mag der Compu
Ucsrc = &B10000110 'Konfiguration:8N1,asynchron.
Ubrr = 39 'Baudratencode für 31250Baud bei 20MHz
Ddrd = &HFE 'MIDI RX-Pin auf Eingang schalten
Portd.0 = 1 'und Pullup enablen.
Ddrb = &HFF 'Komplettes Datenrichtungsregister "b" auf Ausgang
Dim Status As Byte 'Deklarationen
Dim Note_on As Byte
Dim Note_off As Byte
Dim Note_value As Byte
Dim Velo_value As Byte
Wait 5 'Warten, bis der Poly61 gebootet hat
Portd.5 = 1 'Debugging-LED einschalten '
Do
If Ucsra.rxc = 1 Then
Status = Udr
If Status = &H90 Then
While Ucsra.rxc = 0
Wend
Note_value = Udr
While Ucsra.rxc = 0
Wend
Velo_value = Udr
If Velo_value > 0 Then
'damit hätten wir erstmal alle Infos, um eine Taste zu betätigen
'Kopfschmerzen bereiten mir an dieser Stelle noch
'die unterschiedlichen Möglichkeiten des Note off.
end if
End If
End If
Loop
Fehlermeldungen:
Error : 46 Line : 3 Assignment error [UCSRB: 0 &B00011000: 112] , in File : C:\WINDOWS\DESKTOP\POLY61MIDI\POLY61MIDI\POLY61MID I.BAS
Error : 31 Line : 17 Invalid datatype [ 0] , in File : C:\WINDOWS\DESKTOP\POLY61MIDI\POLY61MIDI\POLY61MID I.BAS
Error : 31 Line : 20 Invalid datatype [ 0] , in File : C:\WINDOWS\DESKTOP\POLY61MIDI\POLY61MIDI\POLY61MID I.BAS
Error : 31 Line : 23 Invalid datatype [ 0] , in File : C:\WINDOWS\DESKTOP\POLY61MIDI\POLY61MIDI\POLY61MID I.BAS
thx,
tholan