PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RN-MEGA2560 RC Empfang geht nicht andere Register ?



Steffen44
19.02.2007, 09:07
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 :




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 :

'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]

linux_80
19.02.2007, 11:13
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/product_card.asp?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.

Steffen44
19.02.2007, 12:20
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


Gifr = Gifr Or &H80 'clear Flag Int1

in



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.

-tomas-
24.02.2007, 13:24
@Steffen44
19.02.2007 um 9:43 und 10:07 - mache bitte nie wieder ein Doppelpost !!!!!!!

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