-         
Ergebnis 1 bis 6 von 6

Thema: Tiny12 V.S. GetRC5

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253

    Tiny12 V.S. GetRC5

    Anzeige

    Tag!

    Ich hatte vor meinem Langeweile-Bot (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:

    Code:
    $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
    Code:
    Dim Blub As Iram Byte
    definiert werden. Zumindest compiliert er es dann. Mal sehen ob der Bot auch das tut was ich will....

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253
    Ok, ich bin mir nicht sicher, ob ich den PB0 korrekt auf Input gesetzt hab. Der Sensor schmeisst zwar nen Signal raus (Wenn man ne LED anschliesst), aber der Tiny reagiert nicht...

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253
    Irgendwie scheint er die Abfrageschleife nur 1x zu durclhaufen und bleibt dann stehen. Mysteriös

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569

    Re: Tiny12 V.S. GetRC5

    Nix gegen dich oder Basic ... aber diese Aufgabe dürfte mit Bascom auf einem ATtiny12 nicht lösbar sein.

    Der Grund:
    Der ATtiny 12 hat keinen RAM.
    Damit funktionieren nur noch die wenigsten Bascom Konstukte.

    Des weiteren hat der Tiny 12 nur einen kleinen Hardwarestack.
    Damit dürften bei der Verwendung von Bascom weitere Probleme vorprogrammiert sein.

    Mein Tip: Versuchs in Assembler ... weil Bascom dürfte mit diesen Einschränkungen nicht wirklich klar kommen.

    Grüße,
    da Hanni.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253
    Hallo!

    Das ist ja doof. Mittlerweile bin ich recht sicher, dass er wirklich nur in die Schleife reingeht, sie bis zum Ende abarbeitet und dann steht. Nen Do...Loop sollte doch selbst der Tiny12 schaffen...

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Ich denke mal, das Hund liegt da begraben ...

    Code:
       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
    Ich meine mal gehört zu haben, das diese Struktuen auf einem Tiny ohne RAM nicht funktonieren ...

    Grüße,
    Hanni.

Berechtigungen

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