nico@207: nico@207:
nico@207:#include <stddef.h>
#include "../include/hcs12/asm-m68hc12/portsaccess.h"
#include "../include/hcs12/asm-m68hc12/ports_def.h"
#include "../include/hcs12/asm-m68hc12/ports.h"
#include "../include/data.h"
#include "../include/hcs12/applicfg.h"
#include "../include/hcs12/candriver.h"
#include "../include/hcs12/interrupt.h"
#include "../include/hcs12/canOpenDriver.h"
#include "../include/can.h"
#include "../include/objdictdef.h"
#include "../include/timer.h"
nico@207: Go to the source code of this file.
Defines | |
#define | DEBUG_WAR_CONSOLE_ON |
#define | DEBUG_ERR_CONSOLE_ON |
#define | max(a, b) a>b?a:b |
Functions | |
UNS8 | f_can_receive (UNS8 notused, Message *m) |
UNS8 | canSend (UNS8 notused, Message *m) |
void | __attribute__ ((interrupt)) |
TIMEVAL | getElapsedTime () |
void | resetTimer (void) |
void | initTimer (void) |
void | initSCI_0 (void) |
Initialisation of the serial port 0. | |
void | initSCI_1 (void) |
Initialisation of the serial port 1. | |
char * | hex_convert (char *buf, unsigned long value, char lastCar) |
void | printSCI_str (char sci, const char *str) |
void | printSCI_nbr (char sci, unsigned long nbr, char lastCar) |
void | initPLL (void) |
void | initHCS12 (void) |
Put here all the code to init the HCS12. | |
char | canAddIdToFilter (UNS16 adrCAN, UNS8 nFilter, UNS16 id) |
char | canChangeFilter (UNS16 adrCAN, canBusFilterInit fi) |
char | canEnable (UNS16 adrCAN) |
char | canInit (UNS16 adrCAN, canBusInit bi) |
char | canInitClock (UNS16 adrCAN, canBusTime clk) |
char | canInit1Filter (UNS16 adrCAN, UNS8 nFilter, UNS16 ar, UNS16 mr) |
char | canInitFilter (UNS16 adrCAN, canBusFilterInit fi) |
char | canInitMode (UNS16 adrCAN) |
char | canInitModeQ (UNS16 adrCAN) |
char | canMsgTransmit (UNS16 adrCAN, Message msg) |
char | canSetInterrupt (UNS16 adrCAN) |
char | canSleepMode (UNS16 adrCAN) |
char | canSleepModeQ (UNS16 adrCAN) |
char | canSleepWupMode (UNS16 adrCAN) |
char | canTestInitMode (UNS16 adrCAN) |
char | canTestSleepMode (UNS16 adrCAN) |
#define DEBUG_ERR_CONSOLE_ON | nico@207:
nico@207: nico@207:
nico@207: Definition at line 24 of file canOpenDriver.c. nico@207:
#define DEBUG_WAR_CONSOLE_ON | nico@207:
nico@207: nico@207:
nico@207: Definition at line 23 of file canOpenDriver.c. nico@207:
#define max | nico@207:( | nico@207:a, | |||
nico@207: | nico@207: | b | nico@207:nico@207: | ) | nico@207:a>b?a:b | nico@207:
nico@207: nico@207:
nico@207:
void __attribute__ | nico@207:( | nico@207:(interrupt) | nico@207:nico@207: | ) | nico@207:nico@207: |
nico@207: Message transmitted on MSCAN 0 nico@207:
nico@207: Definition at line 54 of file canOpenDriver.c. nico@207:
nico@207: References IO_PORTS_16, and TC4H. nico@207:
char canAddIdToFilter | nico@207:( | nico@207:UNS16 | nico@207:adrCAN, | nico@207:|
nico@207: | nico@207: | UNS8 | nico@207:nFilter, | nico@207:|
nico@207: | nico@207: | UNS16 | nico@207:id | nico@207: |
nico@207: | ) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 210 of file canOpenDriver.c. nico@207:
nico@207: References CANIDAR0, CANIDAR2, CANIDAR4, CANIDAR6, canTestInitMode(), IO_PORTS_16, IO_PORTS_8, MSG_WAR, and UNS8. nico@207:
char canChangeFilter | nico@207:( | nico@207:UNS16 | nico@207:adrCAN, | nico@207:|
nico@207: | nico@207: | canBusFilterInit | nico@207:fi | nico@207: |
nico@207: | ) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 250 of file canOpenDriver.c. nico@207:
nico@207: References canInitFilter(), canInitMode(), canInitModeQ(), canSetInterrupt(), canSleepMode(), canSleepModeQ(), and canTestInitMode(). nico@207:
char canEnable | nico@207:( | nico@207:UNS16 | nico@207:adrCAN | nico@207:) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 266 of file canOpenDriver.c. nico@207:
nico@207: References CANCTL1, and IO_PORTS_8. nico@207:
char canInit | nico@207:( | nico@207:UNS16 | nico@207:adrCAN, | nico@207:|
nico@207: | nico@207: | canBusInit | nico@207:bi | nico@207: |
nico@207: | ) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 277 of file canOpenDriver.c. nico@207:
nico@207: References CANCTL0, CANCTL1, canBusInit::cane, canEnable(), canInitClock(), canInitFilter(), canInitMode(), canInitModeQ(), canSetInterrupt(), canSleepMode(), canSleepModeQ(), canTestInitMode(), canBusInit::clk, canBusInit::cswai, canBusInit::fi, IO_PORTS_8, canBusInit::listen, canBusInit::loopb, canBusInit::time, and canBusInit::wupm. nico@207:
char canInit1Filter | nico@207:( | nico@207:UNS16 | nico@207:adrCAN, | nico@207:|
nico@207: | nico@207: | UNS8 | nico@207:nFilter, | nico@207:|
nico@207: | nico@207: | UNS16 | nico@207:ar, | nico@207:|
nico@207: | nico@207: | UNS16 | nico@207:mr | nico@207: |
nico@207: | ) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 335 of file canOpenDriver.c. nico@207:
nico@207: References CANIDAR0, CANIDAR2, CANIDAR4, CANIDAR6, canTestInitMode(), IO_PORTS_8, MSG_WAR, and UNS8. nico@207:
char canInitClock | nico@207:( | nico@207:UNS16 | nico@207:adrCAN, | nico@207:|
nico@207: | nico@207: | canBusTime | nico@207:clk | nico@207: |
nico@207: | ) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 313 of file canOpenDriver.c. nico@207:
nico@207: References canBusTime::brp, CANBTR0, CANBTR1, CANCTL1, canTestInitMode(), canBusTime::clksrc, IO_PORTS_8, MSG_WAR, canBusTime::samp, canBusTime::sjw, canBusTime::tseg1, and canBusTime::tseg2. nico@207:
char canInitFilter | nico@207:( | nico@207:UNS16 | nico@207:adrCAN, | nico@207:|
nico@207: | nico@207: | canBusFilterInit | nico@207:fi | nico@207: |
nico@207: | ) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 364 of file canOpenDriver.c. nico@207:
nico@207: References CANIDAC, CANIDAR0, canBusFilterInit::canidar0, CANIDAR1, canBusFilterInit::canidar1, CANIDAR2, canBusFilterInit::canidar2, CANIDAR3, canBusFilterInit::canidar3, CANIDAR4, canBusFilterInit::canidar4, CANIDAR5, canBusFilterInit::canidar5, CANIDAR6, canBusFilterInit::canidar6, CANIDAR7, canBusFilterInit::canidar7, CANIDMR0, canBusFilterInit::canidmr0, CANIDMR1, canBusFilterInit::canidmr1, CANIDMR2, canBusFilterInit::canidmr2, CANIDMR3, canBusFilterInit::canidmr3, CANIDMR4, canBusFilterInit::canidmr4, CANIDMR5, canBusFilterInit::canidmr5, CANIDMR6, canBusFilterInit::canidmr6, CANIDMR7, canBusFilterInit::canidmr7, canTestInitMode(), canBusFilterInit::idam, IO_PORTS_8, and MSG_WAR. nico@207:
char canInitMode | nico@207:( | nico@207:UNS16 | nico@207:adrCAN | nico@207:) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 392 of file canOpenDriver.c. nico@207:
nico@207: References CANCTL0, canTestInitMode(), and IO_PORTS_8. nico@207:
char canInitModeQ | nico@207:( | nico@207:UNS16 | nico@207:adrCAN | nico@207:) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 401 of file canOpenDriver.c. nico@207:
nico@207: References CANCTL0, canTestInitMode(), and IO_PORTS_8. nico@207:
char canMsgTransmit | nico@207:( | nico@207:UNS16 | nico@207:adrCAN, | nico@207:|
nico@207: | nico@207: | Message | nico@207:msg | nico@207: |
nico@207: | ) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 410 of file canOpenDriver.c. nico@207:
nico@207: References CANTBSEL, CANTFLG, CANTRSDTA, CANTRSID, CANTRSLEN, CANTRSPRI, Message::cob_id, Message::data, IO_PORTS_8, Message::len, MSG_WAR, Message::rtr, UNS8, and SHORT_CAN::w. nico@207:
UNS8 canSend | nico@207:( | nico@207:UNS8 | nico@207:notused, | nico@207:|
nico@207: | nico@207: | Message * | nico@207:m | nico@207: |
nico@207: | ) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 505 of file canOpenDriver.c. nico@207:
nico@207: References canMsgTransmit(), and CANOPEN_LINE_NUMBER_USED. nico@207:
char canSetInterrupt | nico@207:( | nico@207:UNS16 | nico@207:adrCAN | nico@207:) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 445 of file canOpenDriver.c. nico@207:
nico@207: References CANRIER, CANTIER, and IO_PORTS_8. nico@207:
char canSleepMode | nico@207:( | nico@207:UNS16 | nico@207:adrCAN | nico@207:) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 452 of file canOpenDriver.c. nico@207:
nico@207: References CANCTL0, canTestSleepMode(), and IO_PORTS_8. nico@207:
char canSleepModeQ | nico@207:( | nico@207:UNS16 | nico@207:adrCAN | nico@207:) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 466 of file canOpenDriver.c. nico@207:
nico@207: References CANCTL0, canTestInitMode(), canTestSleepMode(), IO_PORTS_8, and MSG_WAR. nico@207:
char canSleepWupMode | nico@207:( | nico@207:UNS16 | nico@207:adrCAN | nico@207:) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 480 of file canOpenDriver.c. nico@207:
nico@207: References CANCTL0, canTestInitMode(), canTestSleepMode(), IO_PORTS_8, and MSG_WAR. nico@207:
char canTestInitMode | nico@207:( | nico@207:UNS16 | nico@207:adrCAN | nico@207:) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 493 of file canOpenDriver.c. nico@207:
nico@207: References CANCTL1, and IO_PORTS_8. nico@207:
char canTestSleepMode | nico@207:( | nico@207:UNS16 | nico@207:adrCAN | nico@207:) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 499 of file canOpenDriver.c. nico@207:
nico@207: References CANCTL1, and IO_PORTS_8. nico@207:
UNS8 f_can_receive | nico@207:( | nico@207:UNS8 | nico@207:notused, | nico@207:|
nico@207: | nico@207: | Message * | nico@207:m | nico@207: |
nico@207: | ) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 513 of file canOpenDriver.c. nico@207:
nico@207: References CAN0, CAN1, CAN2, CAN3, CAN4, CANOPEN_LINE_NUMBER_USED, Message::cob_id, Message::data, Message::len, MAX_STACK_MSG_RCV, t_pointerStack::r, Message::rtr, UNS8, and SHORT_CAN::w. nico@207:
TIMEVAL getElapsedTime | nico@207:( | nico@207:void | nico@207:nico@207: | ) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 66 of file canOpenDriver.c. nico@207:
char* hex_convert | nico@207:( | nico@207:char * | nico@207:buf, | nico@207:|
nico@207: | nico@207: | unsigned long | nico@207:value, | nico@207:|
nico@207: | nico@207: | char | nico@207:lastCar | nico@207: |
nico@207: | ) | nico@207:nico@207: |
nico@207: Convert an integer to a string in hexadecimal format If you do not wants to use a lastCar, put lastCar = '' (end of string) ex : value = 0XABCDEF and lastCar = '
nico@207: ' buf[0] = '0' buf[1] = 'X' buf[2] = 'A' .... buf[7] = 'F' buf[8] = '
nico@207: ' buf[9] = ''
nico@207:
nico@207: Definition at line 135 of file canOpenDriver.c. nico@207:
void initHCS12 | nico@207:( | nico@207:void | nico@207:nico@207: | ) | nico@207:nico@207: |
nico@207: Put here all the code to init the HCS12. nico@207:
nico@207: nico@207:
nico@207: Definition at line 199 of file canOpenDriver.c. nico@207:
void initPLL | nico@207:( | nico@207:void | nico@207:nico@207: | ) | nico@207:nico@207: |
nico@207: to start using the PLL. Bus clock becomes 24 MHz if the quartz on the board is at 16 MHz nico@207:
nico@207: Definition at line 188 of file canOpenDriver.c. nico@207:
nico@207: References CLKSEL, CRGFLG, IO_PORTS_8, PLLCTL, REFDV, and SYNR. nico@207:
void initSCI_0 | nico@207:( | nico@207:void | nico@207:nico@207: | ) | nico@207:nico@207: |
nico@207: Initialisation of the serial port 0. nico@207:
nico@207: nico@207:
nico@207: Definition at line 115 of file canOpenDriver.c. nico@207:
nico@207: References BUS_CLOCK, IO_PORTS_16, IO_PORTS_8, SCI0, SCIBDH, SCICR1, SCICR2, and SERIAL_SCI0_BAUD_RATE. nico@207:
void initSCI_1 | nico@207:( | nico@207:void | nico@207:nico@207: | ) | nico@207:nico@207: |
nico@207: Initialisation of the serial port 1. nico@207:
nico@207: nico@207:
nico@207: Definition at line 124 of file canOpenDriver.c. nico@207:
nico@207: References BUS_CLOCK, IO_PORTS_16, IO_PORTS_8, SCI1, SCIBDH, SCICR1, SCICR2, and SERIAL_SCI1_BAUD_RATE. nico@207:
void initTimer | nico@207:( | nico@207:void | nico@207:nico@207: | ) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 79 of file canOpenDriver.c. nico@207:
void printSCI_nbr | nico@207:( | nico@207:char | nico@207:sci, | nico@207:|
nico@207: | nico@207: | unsigned long | nico@207:nbr, | nico@207:|
nico@207: | nico@207: | char | nico@207:lastCar | nico@207: |
nico@207: | ) | nico@207:nico@207: |
nico@207: Print the number in hexadecimal to the serial port sci (sci takes the values SCI0 or SCI1) nico@207:
nico@207: Definition at line 179 of file canOpenDriver.c. nico@207:
nico@207: References hex_convert(), and printSCI_str(). nico@207:
void printSCI_str | nico@207:( | nico@207:char | nico@207:sci, | nico@207:|
nico@207: | nico@207: | const char * | nico@207:str | nico@207: |
nico@207: | ) | nico@207:nico@207: |
nico@207: Print the string to the serial port sci (sci takes the values SCI0 or SCI1) nico@207:
nico@207: Definition at line 162 of file canOpenDriver.c. nico@207:
nico@207: References IO_PORTS_8, SCIDRL, and SCISR1. nico@207:
void resetTimer | nico@207:( | nico@207:void | nico@207:nico@207: | ) | nico@207:nico@207: |
nico@207: nico@207:
nico@207: Definition at line 73 of file canOpenDriver.c. nico@207:
nico@207: