Forum: Mikrocontroller und Digitale Elektronik BASCOM RC5 Aquariumsteuerung


von Stefan B. (stefanbaier)


Lesenswert?

Hallo .. ich hab vor 3 Wochen mein 200 l Aquarium wieder eingerichtet 
und möchte nun die Zeitschaltuhr mit einer AVR-Steuerung ersetzen.
Hab schon einiges mit den AVR gebastelt und hatte einen ATMEGA8535 mit 
LCD, Ds1307, DS18B20, und  eben RC5  - Fernbedienung auf einem 
Steckbrett zusammen gebaut und mit Bascom losprogrammiert. Dabei stieß 
ich an die 4K Grenze der BASCOM DEMO.
OK -- die Software ist Klasse - kurzentschlossen kaufte ich ONLINE die 
Vollversion von BASCOM direkt bei MCS -- Version 2.0.7.3
Zuvor hab ich mit V 1.11.9.8 angefangen -eben die Demo-

Mein Problem: RC5 funktioniert nicht mehr mit der neuen Version,

hab Controller, Fernbedienung und IR Empfänger ausgetauscht, und das 
ganze nochmal mit einemm ATMEGA8 nachvollzogen.
hab die neue Version deinstalliert und die alte wieder drauf --es 
funktioniert --- leider lässt sich die alte Demo nicht als Vollversion 
benutzen und die 4K Grenze erlaubt nicht alle meine Wünsche -- obwohl 
ich ja nun eine Lizenz dazu habe.

genug geschrieben .. Weiß jemand Rat ?

hier das Listing ---- > mit  V 1.11.9.8 funktioniert mit 2.0.7.3 nicht

-----------------------------------

' ATMEGA8 mit Quarz 3,684 MHz
' RC5 Test - Ausgabe von Command und Adress auf LCD

' Rot   - ist eine Rote LED als Statusmelder

$regfile = "m8def.dat"
$crystal = 3684600

Dim Adress As Byte
Dim Command As Byte

Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , 
Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
Config Lcd = 16 * 1

Config Rc5 = Pind.7
Config Pind.7 = Input
Enable Interrupts


Rot Alias Portb.0
Config Rot = Output

Rot = 1

Cursor Off
Cls

Do


Getrc5(adress , Command)

Command = Command And &H7F

Locate 1 , 1
Lcd Hex(adress) ; " " ; Hex(command);

Toggle Rot

Waitms 300

Loop

End

von Karl H. (kbuchegg)


Lesenswert?

Stefan Baier schrieb:

> Mein Problem: RC5 funktioniert nicht mehr mit der neuen Version,

Wenn du das Ding gekauft hast, was hindert dich daran, MCS zu fragen?

von Stefan B. (stefanbaier)


Lesenswert?

Hab ich parallel zu diesem Beitrag auch getan ....
aber:  Holland -- und hier sind so viele kompetente "Kollegen" - also 
Danke für jede Antwort

von Karl H. (kbuchegg)


Lesenswert?

Dann geb ich dir einen Tip:

Nebenan im Roboternetz Forum wird mit BASCOM gearbeitet auf Teufel komm 
raus. Hier in diesem Forum sind es nur wenige.

von Nachdenker (Gast)


Lesenswert?

Na du bist ein Spassvogel.

Ich bezweifle momentan das das vorher funktioniert hat.
Zeige mir mal wo du in diesem Programm die Adresse und Command 
zugewiesen hast? Ich sehe nichts davon.

Eigentlich müsste der Compiler meckern weil er weder die Adresse noch 
die Command definition kennt.

Wie wäre es mal die Basom-Hilfe zu benutzen? Wahrscheinlich ist 
irgendein Umgang mit der RC5 Geschichte nicht richtig gehändelt.

Ich könnte dein Programm ja mal bei mir übersetzen, aber was da bisher 
steht, motiviert mich nicht das zu tun.

von Paul Baumann (Gast)


Lesenswert?

Nachdenker schrob:
>Eigentlich müsste der Compiler meckern weil er weder die Adresse noch
>die Command definition kennt.


Zitat Loriot: ACH?!

...da steht's drin:

>Dim Adress As Byte
>Dim Command As Byte

>Ich könnte dein Programm ja mal bei mir übersetzen, aber was da bisher
>steht, motiviert mich nicht das zu tun.

Dann leg Dich wieder hin.

Ich habe hier leider auch nur die Version 1.11.9.5, damit läßt es sich
aber fehlerfrei übersetzen.

MfG Paul

von Nachdenker (Gast)


Lesenswert?

Okay, ich saß vorher nicht im Hobbyraum, hatte nur mal kurz im Buch 
nachgeschaut und den Verdacht, ein RC5 Kommando wird falsch angewandt.

Bin jetzt drüben und habe das Programm in meine Version 2.0.7.3 kopiert 
und übersetzen lassen. Wird ohne Fehlermeldung übersetzt, müsste also 
gehen.

von Karl H. (kbuchegg)


Lesenswert?

Wenn ich das Eröffnungsposting richtig lese, dann ist das Problem nicht, 
dass es nicht compilieren würde, sondern das die Funktion nicht mehr 
gegeben ist.

von Nachdenker (Gast)


Lesenswert?

Hier Auszug aus der bascom-Hilfe der neuesten Version.
Da dies hier weiterhin gelistet ist, gehe ich davon aus die Funktion ist 
weiterhin gegeben.

Auszug:
'The GETRC5 function uses TIMER0 and the TIMER0 interrupt.

'The TIMER0 settings are restored however so only the interrupt can not

'be used anymore for other tasks


'tell the compiler which pin we want to use for the receiver input


Config Rc5 = Pind.2

'the interrupt routine is inserted automatic but we need to make it 
occur

'so enable the interrupts

Enable Interrupts

'reserve space for variables

Dim Address As Byte , Command As Byte

Print "Waiting for RC5..."

Do

'now check if a key on the remote is pressed

'Note that at startup all pins are set for INPUT

'so we dont set the direction here

'If the pins is used for other input just unremark the next line

'Config Pind.2 = Input

Getrc5(address , Command)



'we check for the TV address and that is 0

If Address = 0 Then

    'clear the toggle bit

    'the toggle bit toggles on each new received command

    'toggle bit is bit 7. Extended RC5 bit is in bit 6

    Command = Command And &B01111111

    Print Address ; "  " ; Command

End If

Loop

von Stefan B. (stefanbaier)


Lesenswert?

Genau so ist es ...es wird fehlerfrei übersetzt ...lässt sich dann ich 
die AVR schiessen ... nur die mit 2.0.7.3 compilierte Variante 
funktioniert nicht mehr .. Adress und Command bleiben &HFF ...
ich hab es mit ATMEGA8, mit TINY26 und ATMEGA8535 reproduzierbar 
wiederholt .. hat MCS was am RC5 geändert .. die Hilfe sagt nichts 
ausser dass TIMER0 verwendet wird, und den hab ich nicht angefasst.
Auch Empfänger und Fernbedienung hab ich schon ausgetauscht

von 1234 (Gast)


Lesenswert?

binde die mal ein:

$lib "mcsbyte.lbx"

von Nachdenker (Gast)


Lesenswert?

Ich bitte um Geduld, verschalte mal einen IR Sensor und probiere dein 
Programm damit aus. Melde mich dann wieder.
(Hoffe nur meine Fernbedienungen arbeiten auf RC5 Basis)

von Stefan B. (stefanbaier)


Lesenswert?

das ist aber nett ... danke fürs  nachbauen

von Stefan B. (stefanbaier)


Lesenswert?

hat leider nicht geholfen

von Stefan B. (stefanbaier)


Lesenswert?

Eben als E-Mail erhalten:

  >> und es funktioniert ! <<

Hello Stefan

Config Rc5 = Pind.7
when you add this :
Config Rc5 = Pind.7, WAIT=2000

it should work the same.

More info you can find in the help under config rc5.

of course you can always install an older version using the updatewiz.


Best regards,

Mark Alberts

MCS Electronics
www.mcselec.com

von Nachdenker (Gast)


Lesenswert?

Siehste, ich sagte doch schau mal in der Bascom-Hilfe die RC5 Dinger 
durch.

Hatte dort zwar nachgeschaut und es steht dort auch was von Wait=2000 
drin, das Mark Albert für alte RC5 Gerätschaften empfiehlt, kam aber 
nicht auf die Idee dass an dieser simplen Option liegt.

Okay, dann brauch ich ja nicht den Lötkolben anzuwerfen, es funktioniert 
jetzt bei dir. Mit RC5 werde ich mich aber auch mal beschäftigen, rein 
Interessehalber.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.