allgemeines CAN Interface für AT90CAN32/64/128, MCP2515 und SJA1000
More...
|
| enum | can_bitrate_t {
BITRATE_10_KBPS = 0,
BITRATE_20_KBPS = 1,
BITRATE_50_KBPS = 2,
BITRATE_100_KBPS = 3,
BITRATE_125_KBPS = 4,
BITRATE_250_KBPS = 5,
BITRATE_500_KBPS = 6,
BITRATE_1_MBPS = 7,
BITRATE_10_KBPS = 0,
BITRATE_20_KBPS = 1,
BITRATE_50_KBPS = 2,
BITRATE_100_KBPS = 3,
BITRATE_125_KBPS = 4,
BITRATE_250_KBPS = 5,
BITRATE_500_KBPS = 6,
BITRATE_1_MBPS = 7
} |
| | Bitraten fuer den CAN-Bus. More...
|
| |
| enum | can_bitrate_t {
BITRATE_10_KBPS = 0,
BITRATE_20_KBPS = 1,
BITRATE_50_KBPS = 2,
BITRATE_100_KBPS = 3,
BITRATE_125_KBPS = 4,
BITRATE_250_KBPS = 5,
BITRATE_500_KBPS = 6,
BITRATE_1_MBPS = 7,
BITRATE_10_KBPS = 0,
BITRATE_20_KBPS = 1,
BITRATE_50_KBPS = 2,
BITRATE_100_KBPS = 3,
BITRATE_125_KBPS = 4,
BITRATE_250_KBPS = 5,
BITRATE_500_KBPS = 6,
BITRATE_1_MBPS = 7
} |
| | Bitraten fuer den CAN-Bus. More...
|
| |
| enum | can_mode_t {
LISTEN_ONLY_MODE,
LOOPBACK_MODE,
NORMAL_MODE,
SLEEP_MODE,
LISTEN_ONLY_MODE,
LOOPBACK_MODE,
NORMAL_MODE,
SLEEP_MODE
} |
| | Modus des CAN Interfaces. More...
|
| |
| enum | can_mode_t {
LISTEN_ONLY_MODE,
LOOPBACK_MODE,
NORMAL_MODE,
SLEEP_MODE,
LISTEN_ONLY_MODE,
LOOPBACK_MODE,
NORMAL_MODE,
SLEEP_MODE
} |
| | Modus des CAN Interfaces. More...
|
| |
allgemeines CAN Interface für AT90CAN32/64/128, MCP2515 und SJA1000
- Author
- Fabian Greif fabia.nosp@m.n.gr.nosp@m.eif@r.nosp@m.wth-.nosp@m.aache.nosp@m.n.de
-
Roboterclub Aachen e.V. (http://www.roboterclub.rwth-aachen.de)
can_sleep() and can_wakeup() functions by Frédéric Lamorce.
- Version
- Id
- can.h 8086 2009-07-14 14:08:25Z fabian
◆ CAN_ALL_FILTER [1/2]
| #define CAN_ALL_FILTER 0xff |
Symbol um auf alle Filter zuzugreifen.
Definition at line 90 of file demo/can.h.
◆ CAN_ALL_FILTER [2/2]
| #define CAN_ALL_FILTER 0xff |
Symbol um auf alle Filter zuzugreifen.
Definition at line 98 of file can.h.
◆ SUPPORT_EXTENDED_CANID
| #define SUPPORT_EXTENDED_CANID 1 |
Unterstuetzung fuer Extended-IDs aktivieren.
Definition at line 105 of file can.h.
◆ SUPPORT_TIMESTAMPS
| #define SUPPORT_TIMESTAMPS 0 |
Unterstützung für Zeitstempel aktivieren.
- Warning
- Wird nur vom AT90CANxxx unterstützt
Definition at line 114 of file can.h.
◆ can_bitrate_t [1/2]
Bitraten fuer den CAN-Bus.
| Enumerator |
|---|
| BITRATE_10_KBPS | |
| BITRATE_20_KBPS | |
| BITRATE_50_KBPS | |
| BITRATE_100_KBPS | |
| BITRATE_125_KBPS | |
| BITRATE_250_KBPS | |
| BITRATE_500_KBPS | |
| BITRATE_1_MBPS | |
| BITRATE_10_KBPS | |
| BITRATE_20_KBPS | |
| BITRATE_50_KBPS | |
| BITRATE_100_KBPS | |
| BITRATE_125_KBPS | |
| BITRATE_250_KBPS | |
| BITRATE_500_KBPS | |
| BITRATE_1_MBPS | |
Definition at line 75 of file demo/can.h.
◆ can_bitrate_t [2/2]
Bitraten fuer den CAN-Bus.
| Enumerator |
|---|
| BITRATE_10_KBPS | |
| BITRATE_20_KBPS | |
| BITRATE_50_KBPS | |
| BITRATE_100_KBPS | |
| BITRATE_125_KBPS | |
| BITRATE_250_KBPS | |
| BITRATE_500_KBPS | |
| BITRATE_1_MBPS | |
| BITRATE_10_KBPS | |
| BITRATE_20_KBPS | |
| BITRATE_50_KBPS | |
| BITRATE_100_KBPS | |
| BITRATE_125_KBPS | |
| BITRATE_250_KBPS | |
| BITRATE_500_KBPS | |
| BITRATE_1_MBPS | |
Definition at line 83 of file can.h.
◆ can_mode_t [1/2]
Modus des CAN Interfaces.
| Enumerator |
|---|
| LISTEN_ONLY_MODE | der CAN Contoller empfängt nur und verhält sich völlig passiv
|
| LOOPBACK_MODE | alle Nachrichten direkt auf die Empfangsregister umleiten ohne sie zu senden
|
| NORMAL_MODE | normaler Modus, CAN Controller ist aktiv
|
| SLEEP_MODE | |
| LISTEN_ONLY_MODE | der CAN Contoller empfängt nur und verhält sich völlig passiv
|
| LOOPBACK_MODE | alle Nachrichten direkt auf die Empfangsregister umleiten ohne sie zu senden
|
| NORMAL_MODE | normaler Modus, CAN Controller ist aktiv
|
| SLEEP_MODE | |
Definition at line 259 of file demo/can.h.
◆ can_mode_t [2/2]
Modus des CAN Interfaces.
| Enumerator |
|---|
| LISTEN_ONLY_MODE | der CAN Contoller empfängt nur und verhält sich völlig passiv
|
| LOOPBACK_MODE | alle Nachrichten direkt auf die Empfangsregister umleiten ohne sie zu senden
|
| NORMAL_MODE | normaler Modus, CAN Controller ist aktiv
|
| SLEEP_MODE | |
| LISTEN_ONLY_MODE | der CAN Contoller empfängt nur und verhält sich völlig passiv
|
| LOOPBACK_MODE | alle Nachrichten direkt auf die Empfangsregister umleiten ohne sie zu senden
|
| NORMAL_MODE | normaler Modus, CAN Controller ist aktiv
|
| SLEEP_MODE | |
Definition at line 267 of file can.h.
◆ can_check_bus_off()
| bool can_check_bus_off |
( |
void |
| ) |
|
◆ can_check_free_buffer()
| bool can_check_free_buffer |
( |
void |
| ) |
|
Ueberprueft ob ein Puffer zum Versenden einer Nachricht frei ist.
- Returns
- true falls ein Sende-Puffer frei ist, false ansonsten.
◆ can_check_message()
| bool can_check_message |
( |
void |
| ) |
|
Ueberpruefen ob neue CAN Nachrichten vorhanden sind.
- Returns
- true falls neue Nachrichten verfuegbar sind, false ansonsten.
◆ can_disable_filter()
| bool can_disable_filter |
( |
uint8_t |
number | ) |
|
Filter deaktivieren.
- Parameters
-
| number | Nummer des Filters der deaktiviert werden soll, 0xff deaktiviert alle Filter. |
- Returns
- false falls ein Fehler auftrat, true ansonsten
- Warning
- Wird nur vom AT90CAN32/64/128 unterstuetzt.
◆ can_get_filter()
| uint8_t can_get_filter |
( |
uint8_t |
number, |
|
|
can_filter_t * |
filter |
|
) |
| |
- Warning
- SJA1000 doesn't return the filter and id directly but the content of the corresponding registers because it is not possible to check the type of the filter.
◆ can_get_message()
| uint8_t can_get_message |
( |
can_t * |
msg | ) |
|
Liest eine Nachricht aus den Empfangspuffern des CAN Controllers.
- Parameters
-
| msg | Pointer auf die Nachricht die gelesen werden soll. |
- Returns
- FALSE falls die Nachricht nicht ausgelesen konnte, ansonsten Filtercode welcher die Nachricht akzeptiert hat.
◆ can_init()
Initialisierung des CAN Interfaces.
- Parameters
-
| bitrate | Gewuenschte Geschwindigkeit des CAN Interfaces |
- Returns
- false falls das CAN Interface nicht initialisiert werden konnte, true ansonsten.
◆ can_read_error_register()
Reads the Contents of the CAN Error Counter.
◆ can_reset_bus_off()
| void can_reset_bus_off |
( |
void |
| ) |
|
◆ can_send_message()
| uint8_t can_send_message |
( |
const can_t * |
msg | ) |
|
Verschickt eine Nachricht über den CAN Bus.
- Parameters
-
| msg | Nachricht die verschickt werden soll |
- Returns
- FALSE falls die Nachricht nicht verschickt werden konnte,
ansonsten der Code des Puffes in den die Nachricht gespeichert wurde
◆ can_set_filter()
| bool can_set_filter |
( |
uint8_t |
number, |
|
|
const can_filter_t * |
filter |
|
) |
| |
Setzen eines Filters.
Für einen MCP2515 sollte die Funktion can_static_filter() bevorzugt werden.
- Parameters
-
| number | Position des Filters |
| filter | zu setzender Filter |
- Returns
- false falls ein Fehler auftrat, true ansonsten
◆ can_set_mode()
Setzt den Operations-Modus.
- Parameters
-
| mode | Gewünschter Modus des CAN Controllers |
◆ can_sleep()
Put CAN interface to sleep and wake up.
MCP2515 active : 5mA MCP2515 sleep : 1µA
MCP2551 active : 10mA+ MCP2551 sleep : 400µA
EICRA = 0;
EIMSK = _BV(INT1);
cli();
sleep_enable();
sleep_bod_disable();
sei();
sleep_cpu();
sleep_disable();
EIMSK = 0;
can_wake();
- Warning
- Only implemented for the MCP2515
◆ can_static_filter()
| void can_static_filter |
( |
const uint8_t * |
filter_array | ) |
|
Setzt die Werte für alle Filter.
prog_char can_filter[] = {
};
...
can_static_filter(can_filter);
- Parameters
-
| *filter_array | Array im Flash des AVRs mit den Initialisierungs- werten für die Filter des MCP2515 |
- See also
- MCP2515_FILTER_EXTENDED()
-
MCP2515_FILTER()
- Warning
- Wird nur vom MCP2515 unterstuetzt.
};
...
can_static_filter(can_filter);
- Parameters
-
| *filter_array | Array im Flash des AVRs mit den Initialisierungs- werten für die Filter des MCP2515 |
- See also
- MCP2515_FILTER_EXTENDED()
-
MCP2515_FILTER()
- Warning
- Wird nur vom MCP2515 unterstuetzt.