AT90CAN128 CAN-Bus mit BASCOM

Gast #663316
Lesenswert?

Hallo zusammen.
Ich habe 2 Platinen mit jeweils einem AT90CAN128 und einem PCA82C250 
Treiber.
Die 2 Platinen sind mit den Leitungen CAN-H und CAN-L miteinander 
verbunden.

Ich möchte mit BASCOM von der ersten Platine eine Byte-Variable zur 
zweiten Platine mit dem CAN-Bus übertragen. Die Platinen haben jeweils 
einen 16MHz Quarz.

Wie sehen die Subroutinen aus für:
Initialisierung (16MHz)
CAN-Senden (eine Byte-Variable mit dem Namen: Test)
CAN-Empfangen mit Interrupt-Routine

Die zweite Platine sollte nicht ausgebremst werden mit Waits oder so, 
deshalb dachte ich an eine Interrupt-Routine die den CAN-Bus abfrägt.

Wenn ich eine Variable vom ersten MC zum zweiten MC übertragen kann, 
dann ist mein Problem gelöst, den Rest (mehrere Variablen) bekomme ich 
dann schon selbst hin.

Bin für jede Hilfe dankbar, Gruß Renate.
Gast #663341
Lesenswert?

Es muß BASCOM sein, leider. Mit ASM habe ich nicht so viel Erfahrung. 
Hatte vor Jahren mal was auf dem PC gemacht mit Macro-Assembler.

Ich habe das Buch: Programmieren der AVR-RISC Mikrocontroller mit 
BASCOM-AVR von Claus Kühnel

Da ist ein Programmbeispiel drin, aber nicht für den AT90CAN128, sondern 
für den AT90S8515 mit SJA1000. Der Code ist ziemlich umfangreich, und 
ich denke das müßte mit dem AT90CAN128 wesentlich einfacher gehen, da 
die Hardware außer dem Treiber schon integriert ist.

Ich habe im Internet schon gegoogelt, aber nichts brauchbares gefunden.

Danke Dir

Gruß Renate
#663353
Lesenswert?

Hallo Renate,

das einzige was Dir erspart bleibt, die Kommunikation zum SJA.

Register müßen auch im Mega gesetzt werden.

Ich kenne mich nicht so mit dem aktuellen Bascom aus, werde mir das 
morgen einmal ansehen und sehen wie man das machen könnte.

Prinzipiell kann man die C-Routine in Basic umsetzen.

By the way, gibt es schon eine feste Vorgabe für die ID's auf dem Bus?

Grüße
Hans-Jsoef
Gast #663361
Lesenswert?

Hey. Nein es gibt keine feste Vorgabe für die ID´s, aber später sollen 
noch weitere AT90CAN128 dazu kommen.

Denke auch das man den C-Code in BASCOM umsetzen kann, aber C ist 
absolut fremd für mich.

Schon mal tausend Dank für Deine Mühe.

Renate
Gast #663605
Lesenswert?

Hallo Hans-Josef.
Das erste Beispiel mit dem Code könnte mir helfen.
Ich dachte es gibt fertige Routinen in BASCOM für:
Initialisierung
Senden
Empfangen

Danke Dir sehr für Deine Hilfe.

Gruß
Renate
Beitrag #5578299 wurde von einem Moderator gelöscht.
Beitrag #5578300 wurde von einem Moderator gelöscht.
Beitrag #5580144 wurde von einem Moderator gelöscht.
Beitrag #5580145 wurde von einem Moderator gelöscht.
Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.