-         

Ergebnis 1 bis 4 von 4

Thema: RN-MEGA2560 RC Empfang geht nicht andere Register ?

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.08.2006
    Ort
    Kitzscher
    Alter
    38
    Beiträge
    237

    RN-MEGA2560 RC Empfang geht nicht andere Register ?

    Anzeige

    Hallo

    ich habe gerade versucht den code aus der Bascom Hilfe für den RC5 Empfang auf einem ATMEGA2560 zum laufen zu bekommen.

    Leider meckert Bascom diese Zeile an :



    Code:
       Gifr = Gifr Or &H80                                      'clear Flag Int1

    Die Fehlermeldung lautet : Error invalid datatyp ?!


    Heißt das Register anders beim ATMEGA2560 ?

    kann man das irgendwie umbauen oder hat jemand funktionierenden Code für den ATMEGA2560 ?


    Hier der gesamte Code :
    Code:
    'Diese Anweisung setzt die Fusebits automatisch korrekt (Syntax $PROG LB, FB , FBH , FBX )
    $prog , 255 , &B11011001 ,                                  'Quarz an / Teiler aus / Jtag aus
    
    $regfile = "m2560def.dat"
    $hwstack = 82                                               '80
    $framesize = 68                                             ' 64
    $swstack = 68                                               '44
    
    $crystal = 16000000                                         'Quarzfrequenz
    
    
    Config Pine.5 = Input
    USB Alias Pine.5                                            'Ist 1 wenn USB angeschlossen
    
    Config Com4 = 38400 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
    Open "com4:" For Binary As #4
    
    
     'RC5 benötigt Timer0 Interrupt !
     Config Rc5 = Pind.3
     On Int1 Int1_int                                           'Nosave würde 52 Takte = 6,5uS sparen
     Enable Int1
     Config Int1 = Falling
     Enable Interrupts
    
     'Rückgabewerte der ISR
     Dim Address_rc5 As Byte , Command_rc5 As Byte , Rc5_flag As Bit
    'RC5 ENDE
    
    
    
    
    
    
    Do
    
    
    
    
     'RC5 Anfang Power off Taste
         If Rc5_flag = 1 Then
          Reset Rc5_flag
            Print "toggle:" ; Command_rc5.7;
            'clear the toggle bit
            Command_rc5 = Command_rc5 And &B01111111
            Print " Adresse:" ; Address_rc5 ; " Code:" ; Command_rc5
    
            If Command_rc5 = 12 Then
    
    
    
    
            Sound Portl.4 , 400 , 350                           'BEEP
            End If
    
    
    'RC5 Anfang Ton Stumm Taste
    
    
          If Command_rc5 = 13 Then                              ' Taste Stumm ist Code 13
    
    
          Sound Portl.4 , 400 , 350                             'BEEP
    
    
    
          End If
        End If
    
         'RC5 ENDE  Power off Taste
    
    
    Loop
    
    
    
     'RC5 Anfang
    'Lesen der RC5 Codes
    Int1_int:                                                   'Interrupt Handler For Int1
       Disable Int1
       Enable Interrupts                                        'für Timer0 Overflow GetRC5
       Getrc5(address_rc5 , Command_rc5)
       Set Rc5_flag                                             'Flag für RC5 Daten
       Gifr = Gifr Or &H80                                      'clear Flag Int1
    
    
       Enable Int1
    Return
      'RC5 ENDE


    Danke und Gruß
    Steffen[/code]

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,
    Da der M2560 mehr als nur 2 ext. INTs hat, kann ich mir schon vorstellen, das der dafür andere Registerbezeichnungen hat,
    schau mal ins DB, da steht es bestimmt: http://www.atmel.com/dyn/products/pr...p?part_id=3632
    Die Link zur Registerübersicht ist im Inhaltsverzeichnis relativ weit unten zu finden.

    Ob das GetRC5 von Bascom dann läuft, ist dann noch das zweite Problem.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.08.2006
    Ort
    Kitzscher
    Alter
    38
    Beiträge
    237
    naja ich kenne mich noch nicht so richtig mit den registern aus. Laut Datenblatt steht unter INTF0 nun "EIFR" ich habe also mal die Zeile von

    Code:
    Gifr = Gifr Or &H80                                      'clear Flag Int1
    in


    Code:
    EIFR = EIFR Or &H80                                      'clear Flag Int1
    geändert aber das ist sicherlich nur quatsch da ich davon keine Ahnung habe und gehen tut es auch nicht.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.03.2004
    Beiträge
    185
    @Steffen44
    19.02.2007 um 9:43 und 10:07 - mache bitte nie wieder ein Doppelpost !!!!!!!

    weiter geht es hier
    http://www.roboternetz.de/phpBB2/viewtopic.php?t=27892

Berechtigungen

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