Goblin
04.07.2006, 11:58
Tag!
Ich hatte vor meinem Langeweile-Bot (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=19006) (gesteuert von einem Attiny12) einen IR-Empfänger zu spendieren, um ihn fernzusteuern. Ich habe kurzerhand Code von einem meiner Atmega8-Projekte recyclet, der einst mit dem gleichen IR-Empfänger beleuchtung ein/ausschaltete. Hat damals wunderbar funktioniert. Das Problem ist, dass der Tiny sich scheinbar nicht mit GetRC5 verträgt. Aber seht selbst:
$regfile = "at12def.dat"
$crystal = 1200000
$tiny
Config Portb = Output
Config Portb.0 = Input 'als Input konfigurieren
Portb.0 = 1 'Pullup aktivieren
Config Rc5 = Pinb.0
Enable Interrupts
Dim Adress As Byte , Command As Byte
'Empfangsschleife
Do
Getrc5(adress , Command)
Waitms 5
If Command = 2 Then Gosub Vorwaerts
If Command = 130 Then Gosub Vorwaerts
If Command = 8 Then Gosub Rueckwaerts
If Command = 120 Then Gosub Rueckwaerts
If Command = 4 Then Gosub Links
If Command = 124 Then Gosub Links
If Command = 6 Then Gosub Rechts
If Command = 122 Then Gosub Rechts
Loop
' Die folgenden Subs wollen noch gefüllt werden
Vorwaerts:
Return
Rueckwaerts:
Return
Links:
Return
Rechts:
Return
Wenn ich das compiliere krieg ich nen ganzen A*sch voll Fehler. Anfangen tuts damit, dass die Zeile mit "Dim Adress As Byte , Command As Byte" den Fehler "[NOT possible with $Tiny]" schmeisst. Den Fehler hat er aber auch schonmal auf die Zeile "Config Rc5 = Pinb.0" gelegt. Ist es so dass der Tiny kein GetRC5 kann? Kann ich mir nicht vorstellen. Was will der Compiler von mir? Wieso geht das nicht? Oder ist der Fehler wieder dämlicher als Atmel erlaubt und liegt zwischen meinen Ohren?
€dit1:
Im Datenblatt las ich gerad, dass PB5 nur Input sein kann und es bei PB3-4 Limitierungen für den Input gibt. Aber PB0-2 scheinen ganz normale I/O's zu sein, und ich nutze ja PB0 für den TSOP.... SELTSAM
€dit2: Die Lösung scheint in der Variablendeklaration zu liegen. Da der Tiny kein SRAM hat muss eine Variable mit
Dim Blub As Iram Byte
definiert werden. Zumindest compiliert er es dann. Mal sehen ob der Bot auch das tut was ich will....
Ich hatte vor meinem Langeweile-Bot (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=19006) (gesteuert von einem Attiny12) einen IR-Empfänger zu spendieren, um ihn fernzusteuern. Ich habe kurzerhand Code von einem meiner Atmega8-Projekte recyclet, der einst mit dem gleichen IR-Empfänger beleuchtung ein/ausschaltete. Hat damals wunderbar funktioniert. Das Problem ist, dass der Tiny sich scheinbar nicht mit GetRC5 verträgt. Aber seht selbst:
$regfile = "at12def.dat"
$crystal = 1200000
$tiny
Config Portb = Output
Config Portb.0 = Input 'als Input konfigurieren
Portb.0 = 1 'Pullup aktivieren
Config Rc5 = Pinb.0
Enable Interrupts
Dim Adress As Byte , Command As Byte
'Empfangsschleife
Do
Getrc5(adress , Command)
Waitms 5
If Command = 2 Then Gosub Vorwaerts
If Command = 130 Then Gosub Vorwaerts
If Command = 8 Then Gosub Rueckwaerts
If Command = 120 Then Gosub Rueckwaerts
If Command = 4 Then Gosub Links
If Command = 124 Then Gosub Links
If Command = 6 Then Gosub Rechts
If Command = 122 Then Gosub Rechts
Loop
' Die folgenden Subs wollen noch gefüllt werden
Vorwaerts:
Return
Rueckwaerts:
Return
Links:
Return
Rechts:
Return
Wenn ich das compiliere krieg ich nen ganzen A*sch voll Fehler. Anfangen tuts damit, dass die Zeile mit "Dim Adress As Byte , Command As Byte" den Fehler "[NOT possible with $Tiny]" schmeisst. Den Fehler hat er aber auch schonmal auf die Zeile "Config Rc5 = Pinb.0" gelegt. Ist es so dass der Tiny kein GetRC5 kann? Kann ich mir nicht vorstellen. Was will der Compiler von mir? Wieso geht das nicht? Oder ist der Fehler wieder dämlicher als Atmel erlaubt und liegt zwischen meinen Ohren?
€dit1:
Im Datenblatt las ich gerad, dass PB5 nur Input sein kann und es bei PB3-4 Limitierungen für den Input gibt. Aber PB0-2 scheinen ganz normale I/O's zu sein, und ich nutze ja PB0 für den TSOP.... SELTSAM
€dit2: Die Lösung scheint in der Variablendeklaration zu liegen. Da der Tiny kein SRAM hat muss eine Variable mit
Dim Blub As Iram Byte
definiert werden. Zumindest compiliert er es dann. Mal sehen ob der Bot auch das tut was ich will....