MCP2515 Mitten im Bertieb Filter einstellen

Gast #2387934
Lesenswert?
• ▲
▼
Hallo.
Ist mein Vorhaben möglich?

Der MCP2515 wird anfangs Initialisiert und in Listen-Only Modus 
gebracht.
Dann möchte ich mitten im Programm den Filter für Empfang anders setzen.

Dafür versetze ich dem MCP in den Configirations Modus indem ich den 
CANCTRL Register mit &B100000000 beschreibe.
Danach serze ich die Bits für den Filter0 um
Dann geht er wieder in Listen Only Modus zurück und das Programm wird 
fortgesetzt.
Leider klappt das noch nicht so, wie ich will.

Es sind mehrere Fehlerquellen möglich, wollte Parallel zur Fehlersuche 
fragen, ob das überhaupt so funktioniert.

Hier ist der Codeschnipsel, muss man aber nicht verstehen ;) :

1
Werte_erfassen:
2

3
Enable Int1
4
O = 0
5

6
Do
7

8
If O = 1 Then  //Wenn Interrupt ausgelöst wurde ist O = 1
9
Disable Int1   // Deaktiviere hier vorsichtshalber den Interrupt
10

11
If V1 = 0 And V2 = 0 And V3 = 0 Then
12
Höhe = byte4
13
Länge = byte5
14
V1 = 1
15
Mcp2515_bitmodify2 Canctrl , &B11100000 , &B10000000
16
Mcp2515_write_register2 Rxf0sidh , &B11100110               
17
Mcp2515_write_register2 Rxf0sidl , &B01000000              
18
Mcp2515_bitmodify2 Canctrl , &B11100000 , &B01100000
19
Mcp2515_read_register2      //Buffer auslesen um Interrupt zurück zu setzen
20
Goto Werte_erfassen
21
End If
22

23

24
If V1 = 1 And V2 = 0 And V3 = 0 Then
25
Feuchte = byte3
26
V2 = 1
27
Mcp2515_bitmodify2 Canctrl , &B11100000 , &B10000000
28
Mcp2515_write_register2 Rxf0sidh , &B00110101               
29
Mcp2515_write_register2 Rxf0sidl , &B10100000               
30
Mcp2515_bitmodify2 Canctrl , &B11100000 , &B01100000
31
Mcp2515_read_register2
32
Goto Werte_erfassen
33
End If
34

35

36
If V1 = 1 And V2 = 1 And V3 = 0 Then
37
Temperatur = byte4
38
V3 = 1
39
Mcp2515_bitmodify2 Canctrl , &B11100000 , &B10000000
40
Mcp2515_write_register2 Rxf0sidh , &B10011000               
41
Mcp2515_write_register2 Rxf0sidl , &B00000000               
42
Mcp2515_bitmodify2 Canctrl , &B11100000 , &B01100000
43
Mcp2515_read_register2
44
Goto Werte_erfassen
45
End If
46

47
O = 0
48
End If
49

50

51

52
If V1 = 1 And V2 = 1 And V3 = 1 Then
53
Gosub Rechnen_ausgeben
54
V1 = 0
55
V2 = 0
56
V3 = 0
57
End If
58

59
Enable Int1
60

61
Loop
62

63
End



Danke
Gruss Alex S.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.