4#include "tutti_gli_header.h"
86uint8_t
volatile fuffa=0;
87volatile uint32_t can_clock;
89#define power_down_conEINT3
102#define LPC_CAN (LPC_CAN1)
104#define CAN_RD_PORT (RTE_CAN1_RD_PORT)
105#define CAN_RD_BIT (RTE_CAN1_RD_BIT)
106#define CAN_RD_FUNC (RTE_CAN1_RD_FUNC)
108#define CAN_TD_PORT (RTE_CAN1_TD_PORT)
109#define CAN_TD_BIT (RTE_CAN1_TD_BIT)
111#define CAN_INT_F_Enable ((CAN_RD_PORT == 0) ? (LPC_GPIOINT->IO0IntEnF |= (1 << CAN_RD_BIT)) : (LPC_GPIOINT->IO2IntEnF |= (1 << CAN_RD_BIT)))
112#define CAN_INT_F_Disable ((CAN_RD_PORT == 0) ? (LPC_GPIOINT->IO0IntEnF &= ~(1 << CAN_RD_BIT)) : (LPC_GPIOINT->IO2IntEnF &= ~(1 << CAN_RD_BIT)))
113#define CAN_INT_Clear ((CAN_RD_PORT == 0) ? (LPC_GPIOINT->IO0IntClr |= (1 << CAN_RD_BIT)) : (LPC_GPIOINT->IO2IntClr |= (1 << CAN_RD_BIT)))
114#define CAN_INT_Status ((CAN_RD_PORT == 0) ? ((LPC_GPIOINT->IO0IntStatF & (1 << CAN_RD_BIT)) != 0) : ((LPC_GPIOINT->IO2IntStatF & (1 << CAN_RD_BIT)) != 0))
152void System_init(
void)
156 LPC_SC->SCS = mio_SCS_Val;
157 if (LPC_SC->SCS & (1 << 5)) {
158 while ((LPC_SC->SCS & (1<<6)) == 0);
161 LPC_SC->CCLKCFG = mio_CCLKCFG_Val;
165 LPC_SC->PCLKSEL0 = mio_PCLKSEL0_Val;
166 LPC_SC->PCLKSEL1 = mio_PCLKSEL1_Val;
168 LPC_SC->CLKSRCSEL = mio_CLKSRCSEL_Val;
169 LPC_SC->PLL0CFG = mio_PLL0CFG_Val;
170 LPC_SC->PLL0FEED = 0xAA;
171 LPC_SC->PLL0FEED = 0x55;
173 LPC_SC->PLL0CON = mio_PLL0_SETUP;
174 LPC_SC->PLL0FEED = 0xAA;
175 LPC_SC->PLL0FEED = 0x55;
177 while (!(LPC_SC->PLL0STAT & (1<<26)));
180 LPC_SC->PLL0CON = 0x03;
181 LPC_SC->PLL0FEED = 0xAA;
182 LPC_SC->PLL0FEED = 0x55;
183 while ((LPC_SC->PLL0STAT & ((1<<25) | (1<<24))) != ((1<<25) | (1<<24)));
186 SystemCoreClockUpdate();
187 SysTick_Config(SystemCoreClock/1000);
189 NVIC_SetPriority (SysTick_IRQn, 29);
212#ifdef power_down_conCAN
214 LPC_SC->CANSLEEPCLR|=2U;
215 LPC_CAN1->MOD &=~(1<<4);
216 LPC_SC->CANWAKEFLAGS|= 2U;
217 LPC_CAN1->IER &= ~(1<< 4);
218 NVIC_DisableIRQ(CANActivity_IRQn);
228 LPC_SC->PCON &=~ 0x01;
229 SCB->SCR &=~ (1UL << 2);
231 can_clock=
CANdrv->GetClock();
235 LPC_CAN1->GSR &= ~CAN_GSR_TXERR_Msk;
237 uint32_t LPC_dummy= LPC_CAN1->ICR;
238 SystemCoreClockUpdate();
285#ifdef power_down_conCAN
288 LPC_CAN1->IER = 1<< 4;
291 NVIC_ClearPendingIRQ(CANActivity_IRQn);
292 NVIC_ClearPendingIRQ(CAN_IRQn);
294 while ((LPC_SC->CANWAKEFLAGS>>CAN_PORT) & 0x01)
295 LPC_SC->CANWAKEFLAGS |= (1<<CAN_PORT);
296 LPC_CAN1->MOD |=(1<<4);
298 NVIC_SetPriority(CANActivity_IRQn,31);
299 NVIC_SetPriority (SysTick_IRQn, 29);
300 NVIC_EnableIRQ(CANActivity_IRQn);
303#ifdef power_down_conEINT3
307 status =
CANdrv ->PowerControl(ARM_POWER_OFF);
308 status =
CANdrv -> Uninitialize();
310 PIN_Configure(CAN_RD_PORT, CAN_RD_BIT, PIN_FUNC_0, PIN_PINMODE_TRISTATE, PIN_PINMODE_NORMAL);
311 NVIC_DisableIRQ(EINT3_IRQn);
314 NVIC_SetPriority(EINT3_IRQn,31);
315 NVIC_SetPriority (SysTick_IRQn, 29);
316 NVIC_ClearPendingIRQ(EINT3_IRQn);
317 NVIC_EnableIRQ(EINT3_IRQn);
324 I2CAdrv->PowerControl (ARM_POWER_OFF);
325 I2CAdrv->Uninitialize ();
326 I2CBdrv->PowerControl (ARM_POWER_OFF);
327 I2CBdrv->Uninitialize ();
328 SPIdrv->PowerControl (ARM_POWER_OFF);
329 SPIdrv->Uninitialize ();
344 LPC_SC->PLL0CON &= ~(1<<1) ;
352 LPC_SC->PLL0FEED = 0xAA;
353 LPC_SC->PLL0FEED = 0x55;
355 while ((LPC_SC->PLL0STAT & (1<<25)) != 0x00);
357 LPC_SC->PLL0CON &= ~(1<<0);
359 LPC_SC->PLL0FEED = 0xAA;
360 LPC_SC->PLL0FEED = 0x55;
362 while ((LPC_SC->PLL0STAT & (1<<24)) != 0x00){}
370 if( ( CoreDebug ->DHCSR & 1 )==0 ){
399 NVIC_ClearPendingIRQ(EINT3_IRQn);
400 NVIC_DisableIRQ(EINT3_IRQn);
401 PIN_Configure(CAN_RD_PORT, CAN_RD_BIT, CAN_RD_FUNC, PIN_PINMODE_TRISTATE, PIN_PINMODE_NORMAL);
422#define risveglio_di_Paolo
423#define risveglio_di_gianluigi
424#ifdef risveglio_di_Paolo
427#ifdef risveglio_di_gianluigi
uint32_t tx_obj_idx
This is the variable which resembles the flags from the communication.
unsigned int indirizzo_CAN_della_scheda
Per ora lo assegnamo cos\i l'indirizzo della scheda.
void CAN_Inizialize(void)
The CAN initialization function.
void I2C_0_Initialize(void)
The I2C_0 initialize.
void I2C_1_Initialize(void)
The I2C_1 initialize.
void LED_accendi_spegni(uint8_t LED, uint8_t accendi_1_spegni_0)
This function turns ON or OFF any of the selcted LED.
volatile uint32_t POWER_DOWN_MAX_ATTESA
upper limit for POWER_DOWN_TEMPO_ATTESA
void EINT3_IRQHandler(void)
Wake-up managing function.
void CANActivity_IRQHandler_mio(void)
Peripherals Wake-up.
volatile uint32_t POWER_DOWN_ABILITA_CONTEGGIO
Power down couter and anable is set if this variable is true.
void WakeResetCAN(void)
CAN pins restoring.
void PowerControl_PowerDown(void)
Power down managing function.
volatile uint32_t POWER_DOWN_TEMPO_ATTESA
Counter to wait for power down, multiple of 10 ms.
void SPI_Inizialize(void)
SPI is initialized here. Its ise t at 8 bits and 100 KHz, as default.