Functions
functions.c File Reference

Contains functions definitions which are relevant for interface between lower and upper layers of PDCP ( mainly HAL ) More...

#include <avr/io.h>
#include <avr/wdt.h>
#include <stdint.h>
#include "functions.h"

Functions

void initLowLevelProtocolHardware (void)
 Function to initialize all important ports and methods for LLP hardware.
SPI_INIT_STATUS initSpi ()
 SPI Interface Initialization.
uint8_t transmitSpi (uint8_t data)
 SPI Transmit Data.
CAN_INIT_STATUS initCan (uint8_t id)
 Can initialization.
void hal_set_filter (uint8_t id)
 Function to set filters of node indicated by ID.
void hal_set_mask (uint8_t id)
 Function to set mask of node indicated by ID.
void initInterrupts (void)
 Initialize all needed interrupts (TIMERS, EXTx..)
void initIOPort (void)
 Place for I/O pins initialization.
void initIOPort_appDesigner (void)
 Place for I/O pins initialization left for application designer.
void initInterrupts_appDesigner (void)
 Place for interrupt initialization left for application designer.
void initSPIPorts (void)
 Spi ports initialization.
uint8_t mcp2515TransmitData (uint8_t mode, uint8_t reg, uint8_t val, uint8_t setClearFlag)
 Function to transmit data between MCU and MCP2515.
void initINTPorts (void)
 Software interrupt ports initialization.
void initUSART (uint16_t baud)
 Function to initialize all important ports and methods for LLP hardware.
void triggerSoftwareInterrupt (uint8_t port)
 Function to trigger software interrupt.
void printCharUsart (char sign)
 Function to send single char through UART.
void printUsart (char *str)
 Function to send string of chars through UART.
void hal_msg_take ()
 Function to trigger message sending.
void wdtDisable ()
 Function to disable watchdog timer.
wdtEnable

Function to enable watchdog timer

Parameters:
[in]timeTime of WDT reset activation
Returns:
void
void wdtEnable (uint8_t time)
void initEEPROM (void)
 Init EEPROM.
uint8_t readEEPROM (uint8_t address)
 Read EEPROM.
void writeEEPROM (uint8_t address, uint8_t data)
 Write EEPROM.
void checkTransmissionErrors (struct errorStr *readErrStr)
 Callback function to check whether errors in transmission have occured.
void clearTransmissionErrors (void)
 Function to clear error structure.
void forceReset (void)
 Function to call reset handler.

Detailed Description

Contains functions definitions which are relevant for interface between lower and upper layers of PDCP ( mainly HAL )

Author:
Andrzej Zamojski ( NTNU )
Date:
1 VI 2012

Function Documentation

void checkTransmissionErrors ( struct errorStr readErrStr)

Callback function to check whether errors in transmission have occured.

Parameters:
[in]structerrorStr* Pointer to structure (type of errorStr) to read errors
Returns:
void
void clearTransmissionErrors ( void  )

Function to clear error structure.

Parameters:
[in]void
Returns:
void
void forceReset ( void  )

Function to call reset handler.

Attention:
After calling this function procedure of BINDING probably should be executed
Parameters:
[in]void
Returns:
void
void hal_msg_take ( void  )

Function to trigger message sending.

Returns:
void
void hal_set_filter ( uint8_t  id)

Function to set filters of node indicated by ID.

Can be called after PIN initialization

Parameters:
[in]idCONFIG_BUS_MODE
Returns:
void
void hal_set_mask ( uint8_t  id)

Function to set mask of node indicated by ID.

Can be called after PIN initialization

Parameters:
[in]idCONFIG_BUS_MODE
Returns:
void
CAN_INIT_STATUS initCan ( uint8_t  id)

Can initialization.

Can be called after PIN initialization

Parameters:
[in]idId CONFIG_BUS_MODE
[in]moduleModeCONFIG_BUS_MODE type
Returns:
CAN_INIT_STATUS Status of CAN initialization
void initEEPROM ( void  )

Init EEPROM.

Returns:
void
void initInterrupts ( void  )

Initialize all needed interrupts (TIMERS, EXTx..)

Contains call to function initInterrupts_appDesigner() which should contain
initialization of interrupts indispensible for application (empty by default)

Attention:
User must be careful with EXT_EICRA and EXT_EICRB registers, because automation of this process would be too complicated, therefore user should take a look at microcontroller documentation and set registers value properly.
Parameters:
[in]void
Returns:
void
void initInterrupts_appDesigner ( void  )

Place for interrupt initialization left for application designer.

Attention:
Be careful about interrupt bits used by interface - always use operator (|) or (&) to not destroy an interface
Parameters:
[in]void
Returns:
void
void initINTPorts ( void  )

Software interrupt ports initialization.

Attention:
HW_SOFT_INT_DDR and HW_SOFT_INT_PORT defined in uCmaskFile.h
Parameters:
[in]void
Returns:
void
void initIOPort ( void  )

Place for I/O pins initialization.

Contains call to function initIOPort_appDesigner() which should contain
initialization of IO Ports indispensible for application (empty by default)

Parameters:
[in]void
Returns:
void
void initIOPort_appDesigner ( void  )

Place for I/O pins initialization left for application designer.

Can consist of I2C, pins, interfaces etc. initialization

Attention:
Be careful about ports relevant for communication interface
Parameters:
[in]void
Returns:
void

Function to initialize all important ports and methods for LLP hardware.

Parameters:
[in]void
Returns:
void

SPI Interface Initialization.

Returns:
SPI_INIT_STATUS Status of Initialization (enum SPI_INIT_STATUS)

Port initialization done in InitPorts function

void initSPIPorts ( void  )

Spi ports initialization.

Parameters:
[in]void
Returns:
void

look at uCmaskFile.h where ports are defined

void initUSART ( uint16_t  baud)

Function to initialize all important ports and methods for LLP hardware.

Parameters:
[in]baudBaudrate
Returns:
void
uint8_t mcp2515TransmitData ( uint8_t  mode,
uint8_t  reg,
uint8_t  val,
uint8_t  setClearFlag 
)

Function to transmit data between MCU and MCP2515.

Can be called after PIN initialization

Parameters:
[in]modeMode of operation MCP_WRITE_CMD, MCP_READ_CMD or MPC_BIT_MODIFY
[in]regAddress of register to change/read
[in]valValue to to change: must be a shift value if MPC_BIT_MODIFY is specified, otherwise full value register
[in]setClearFlagIf MPC_BIT_MODIFY specified, SET_BIT or CLR_BIT (defined in MCP2515_CAN_control.h file) defines clearing of setting mode
Returns:
retValue Read value from MCP2515
void printCharUsart ( char  sign)

Function to send single char through UART.

Parameters:
[in]signSign to send through USART
Returns:
void
void printUsart ( char *  str)

Function to send string of chars through UART.

Parameters:
[in]strString to send through UART
Returns:
void
uint8_t readEEPROM ( uint8_t  address)

Read EEPROM.

Parameters:
[in]addressEEPROM read address
Returns:
data EEPROM data
uint8_t transmitSpi ( uint8_t  data)

SPI Transmit Data.

May be called after PIN initialization

Parameters:
[in]dataData to transmission
Returns:
uint8_t Result of SPI transmission (data)
void triggerSoftwareInterrupt ( uint8_t  port)

Function to trigger software interrupt.

Attention:
Be careful with port number ( in AT90USB1287 higher than 3, because of SPI interface... )
HW_SOFT_INT_PORT declared in uCmaskFile.h
Parameters:
[in]void
Returns:
void
void wdtDisable ( void  )

Function to disable watchdog timer.

Returns:
void
void writeEEPROM ( uint8_t  address,
uint8_t  data 
)

Write EEPROM.

Parameters:
[in]addressEEPROM write address
[in]dataEEPROM write data
Returns:
void
 All Classes Files Functions Enumerations Enumerator Defines