Hallo Markus, hallo zusammen.
BASCOM hat so seine Macken. Es werden halt schlicht und einfach nicht alle Features der AVRs unterstützt. Ist aber kein Beinbruch, man kann in BASCOM auch ein bißchen ASM einbauen.
Ein Beispiel, der berühmt berüchtigte 32,...khz Software-Oszillator :
' Timer3, Fast-PWM (Mode 15), Prescale = 1, variable Frequenz, Tast 1:1, OC3A -> ca. 32.768Hz
Tccr3a.7 = 0 ' COM3A1
Tccr3a.6 = 1 ' COM3A0
Tccr3a.1 = 1 ' WGM31
Tccr3a.0 = 1 ' WGM30
Tccr3b.4 = 1 ' WGM33
Tccr3b.3 = 1 ' WGM32
Tccr3b.2 = 0 ' CS32
Tccr3b.1 = 0 ' CS31
Tccr3b.0 = 1 ' CS30
Ocr3ah = 0
Ocr3al = 120
Enable Timer3
Im Prinzip muß man nur die entsprechenden Register füllen, das wars
Und hier ein kleiner Bug-Fix, damit RC5-Decodierung auch mit dem Atmega1281 + Atmega2561 funktionieren :
$asm ' Wichtig, damit der Getrc5 beim Atmega1281 mit Timer0 funktioniert !
.equ Timsk = Timsk0
$end Asm
Prinzipiell ist es immer besser, zurück zu den Wurzeln zu gehen. Offensichtlich geben sich die Entwickler der BASCOM-Software nicht sooo große Mühe, was in den entsprechenden ...def.dat's zu erkennen ist. Teilweise heilloses "Cut & Paste".
Thomas