int main(void) { FPUEnable(); led_Init(); button_Init(); can_Init(); pcsr_Init(); //can_SetLogging(0, 0x001, 0x3FF, LogHandler); //uint8_t new_data[] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; //uint8_t new_data_mask[] = { 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF }; //can_SetFiltering(0, 0x001, 0x3FF, new_data, new_data_mask); //uint8_t data[] = { 0xFF, 0x00, 0xFF, 0x00, '\n' }; //pcsr_WriteData("READY!\r\n", 8); while(UARTCharsAvail(UART2_BASE)) { led_Byte(UARTCharGetNonBlocking(UART2_BASE)); } while(1) { uint8_t buf[22]; pcsr_ReadData(buf, 1); if(buf[0] == FUNCTION_LOG) { pcsr_ReadData(buf + 1, 5); uint16_t arbid = buf[2] + (buf[3] << 8); uint16_t arbid_mask = buf[4] + (buf[5] << 8); can_SetLogging(buf[1], arbid, arbid_mask, LogHandler); } else if(buf[0] == FUNCTION_FILTER) { pcsr_ReadData(buf + 1, 21); uint16_t arbid = buf[2] + (buf[3] << 8); uint16_t arbid_mask = buf[4] + (buf[5] << 8); can_SetFiltering(buf[1], arbid, arbid_mask, buf + 6, buf + 14); } else if(buf[0] == FUNCTION_RESET) { can_ResetFunctions(); //led_Byte(buf[0]); } } }
void sys_Init(void) { SystemInit(); #if CONFIG_DRIVER_WDT == 1 wdt_init(CONFIG_WDT_PERIOD); #endif time_Init(); #if CONFIG_DRIVER_LED == 1 led_Init(); #endif bsp_init(); #if (CONFIG_IAR_REDIRECT == 1) || (CONFIG_TASK_SHELL == 1) console_Init(); #endif #if (CONFIG_FLASH_NVM == 1) nvm_init(); #endif }
/******************************************************************************* Routine Name: _initPeri Form: static void _initPeri( void ) Parameters: void Return value: void Description: initialize peripheral. *******************************************************************************/ static void _initPeri( void ) { /*--- BLKCON ---*/ BLKCON2 = 0xC9; // UART0 BLKCON4 = 0x01; BLKCON6 = 0xC0; // BLKCON7 = 0x00; // PWMC/D/E/F /*--- Interrupt ---*/ irq_di(); irq_init(); (void)irq_setHdr( (unsigned char)IRQ_NO_PA0INT, _intPA0 ); (void)irq_setHdr( (unsigned char)IRQ_NO_TMBINT, _intTMB ); QPA0 = 0; QTMB = 0; EPA0 = 1; ETMB = 1; irq_ei(); /*---- WDT ---*/ WDTMOD = WDT_23MS; // main_clrWDT(); /*--- Clock ---*/ clk_setSysclk(); /*--- TBC ---*/ (void)tb_setHtbdiv( (unsigned char)TB_HTD_1_1 ); /*--- Timer ---*/ tm_init( TM_CH_NO_AB ); /* Timer channel */ tm_setABSource(TM_CS_LSCLK); /* Operation clock */ tm_setABData( (unsigned short)(MAIN_TIMER_CNT) ); /* Timer count value */ tm_startAB(); _swInit(); /*--- LED ---*/ led_Init(); }
int main() { SYSCTL->RCGCGPIO |= 0x01; // GPIOA SYSCTL->RCGCUART |= 0x01; // UART0 // Pins [0:1] digital enable GPIOA->DEN |= 0x3; // Pins [0:1] output GPIOA->DIR |= 0x3; // Pins [0:1] high //GPIOA->DATA |= 0x3; // Pins [0:1] alternate functionality (UART0 Rx/Tx) GPIOA->AFSEL |= 0x3; // Clear and set port mux for GPIOB pins [0:1] GPIOA->PCTL &= ~0xFF; GPIOA->PCTL |= 0x11; // Disable UART0 UART0->CTL &= ~0x1; // Clear and set integer baud-rate divisor UART0->IBRD &= ~0xFFFF; UART0->IBRD |= (16000000 / (16u * 9600u)) & 0xFFFF; // Clear and set fractional baud-rate divisor UART0->FBRD &= ~0x3F; UART0->FBRD |= (((16000000u * 128u) / (16u * 9600u) + 1)/2) & 0x3F; // Clear and set line control (8-bit, no FIFOs, 1 stop bit) UART0->LCRH &= ~0xFF; UART0->LCRH |= 0x70; // Clear and set clock source (PIOSC) UART0->CC &= ~0xF; UART0->CC |= 0x5; // Enable DMA on Tx line // UART0->DMACTL |= 0x2; // Enable interrupts for data received // UART0->IM |= 0x10; // Enable loopback operation // UART0->CTL |= 0x80; // Enable UART0 UART0->CTL |= 0x1; led_Init(); can_Init(); //can_ReadInit(0x400, 0x7F8, 4); CanPacket packet = { .arbid = 0x165, // Right Mirror Move Right //.data = { 0x00, 0x00, 0x00, 0x01, 0x10, 0x2C, 0x80, 0x20 }, // Unlock doors .data = { 0x20, 0xC0, 0x00, 0x00, 0x10, 0x65, 0x00, 0x00 }, }; can_Loopback(); //CanPacket packet2; //can_ReadBlock(&packet2); led_Set(true, false, false); // Init for the lists init_list(id_4D, 0x4D); init_list(id_11A, 0x11A); init_list(id_130, 0x130); init_list(id_139, 0x139); init_list(id_156, 0x156); init_list(id_165, 0x165); init_list(id_167, 0x167); init_list(id_171, 0x171); init_list(id_178, 0x178); init_list(id_202, 0x202); init_list(id_179, 0x179); init_list(id_204, 0x204); init_list(id_185, 0x185); init_list(id_25C, 0x25C); init_list(id_1A0, 0x1A0); init_list(id_200, 0x200); init_list(id_230, 0x230); init_list(id_25A, 0x25A); init_list(id_25B, 0x25B); init_list(id_270, 0x270); init_list(id_280, 0x280); init_list(id_312, 0x312); init_list(id_352, 0x352); init_list(id_365, 0x365); init_list(id_366, 0x366); init_list(id_367, 0x367); init_list(id_368, 0x368); init_list(id_369, 0x369); init_list(id_410, 0x410); init_list(id_421, 0x421); init_list(id_42D, 0x42D); init_list(id_42F, 0x42F); init_list(id_43E, 0x43E); init_list(id_440, 0x440); init_list(id_472, 0x472); init_list(id_473, 0x473); init_list(id_474, 0x474); init_list(id_475, 0x475); init_list(id_476, 0x476); init_list(id_477, 0x477); init_list(id_595, 0x595); while(1) { //uint8_t buf[12]; //pc_ReadData(buf, 2); //led_Byte(buf[0]); //led_Byte(buf[1]); //UART0->DR = 'a'; for(unsigned i = 0 ; i < 50000 ; i ++); can_Inject(&packet); } /* //FPUEnable(); pc_comm_init(); count = 0; // Enable clocking to peripherals SYSCTL->RCGCTIMER |= 1; // TIMER0 // Enable TIMER0A Interrupt NVIC->ISER[0] |= (1 << TIMER0A_IRQn); // Kill TIMER0A TIMER0->CTL &= ~0x1; // 32 Bit timer configuration for TIMER0 TIMER0->CFG = 0; // Regular, one-shot timer mode TIMER0->TAMR = 1; // .5 seconds at 16MHz TIMER0->TAILR = 8000000; // TIMER0A timeout interrupt mask TIMER0->IMR = 1; // Enable TIMER0A, enable debug stalling TIMER0->CTL |= 0x3; while(1){}; */ }
void ict_Init(void) { led_Init(); led_flash(LED_GREEN); TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; GPIO_InitTypeDef GPIO_InitStructure; ADC_InitTypeDef ADC_InitStructure; DAC_InitTypeDef DAC_InitStructure; RCC_ADCCLKConfig(RCC_PCLK2_Div8); /*72Mhz/8 = 9Mhz*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC2, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC3, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE| RCC_APB2Periph_GPIOD| RCC_APB2Periph_GPIOC| RCC_APB2Periph_GPIOA, ENABLE); // IO config GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOE, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_4| GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOA, &GPIO_InitStructure); // DAC config DAC_StructInit(&DAC_InitStructure); DAC_Init(DAC_Channel_1, &DAC_InitStructure); DAC_Cmd(DAC_Channel_1, ENABLE); DAC_StructInit(&DAC_InitStructure); DAC_Init(DAC_Channel_2, &DAC_InitStructure); DAC_Cmd(DAC_Channel_2, ENABLE); /* ADC1 config, Power Ouput Voltage sampling, V1 = ADC1_CH2 = PA2 = ADC123_IN2 V2 = ADC2_CH7 = PA7 = ADC12_IN7 */ ADC_DeInit(ADC1); ADC_StructInit(&ADC_InitStructure); ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = ENABLE; ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 0; ADC_Init(ADC1, &ADC_InitStructure); ADC_InjectedSequencerLengthConfig(ADC1, 4); ADC_InjectedChannelConfig(ADC1, ADC_Channel_2, 1, ADC_SampleTime_55Cycles5); //9Mhz/(71.5 + 12.5) = 107.1Khz ADC_InjectedChannelConfig(ADC1, ADC_Channel_7, 2, ADC_SampleTime_55Cycles5); ADC_InjectedChannelConfig(ADC1, ADC_Channel_1, 3, ADC_SampleTime_55Cycles5); //I0 ADC_InjectedChannelConfig(ADC1, ADC_Channel_6, 4, ADC_SampleTime_55Cycles5); //I1 ADC_ExternalTrigInjectedConvConfig(ADC1, ADC_ExternalTrigInjecConv_None); ADC_Cmd(ADC1, ENABLE); ADC_ResetCalibration(ADC1); while (ADC_GetResetCalibrationStatus(ADC1)); ADC_StartCalibration(ADC1); while (ADC_GetCalibrationStatus(ADC1)); ADC_SoftwareStartInjectedConvCmd(ADC1, ENABLE); /* ADC2 config, current sampling & over current protection * I1 = ADC1_CH1 = PA1 = ADC123_IN1 */ ADC_DeInit(ADC2); ADC_StructInit(&ADC_InitStructure); ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = DISABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_Init(ADC2, &ADC_InitStructure); ADC_RegularChannelConfig(ADC2, ADC_Channel_1, 1, ADC_SampleTime_71Cycles5); //9Mhz/(71.5 + 12.5) = 107.1Khz ADC_Cmd(ADC2, ENABLE); ADC_ResetCalibration(ADC2); while (ADC_GetResetCalibrationStatus(ADC2)); ADC_StartCalibration(ADC2); while (ADC_GetCalibrationStatus(ADC2)); ADC_AnalogWatchdogThresholdsConfig(ADC2, mA2d(100), 0x000); ADC_AnalogWatchdogSingleChannelConfig(ADC2, ADC_Channel_1); ADC_AnalogWatchdogCmd(ADC2, ADC_AnalogWatchdog_SingleRegEnable); NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel = ADC1_2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //START ADC_ITConfig(ADC2, ADC_IT_AWD, ENABLE); ADC_SoftwareStartConvCmd(ADC2, ENABLE); /* ADC3 config, current sampling & over current protection * I2 = ADC2_CH6 = PA6 = ADC12_IN6 */ ADC_DeInit(ADC3); ADC_StructInit(&ADC_InitStructure); ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = DISABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_Init(ADC3, &ADC_InitStructure); ADC_RegularChannelConfig(ADC3, ADC_Channel_6, 1, ADC_SampleTime_71Cycles5); //9Mhz/(71.5 + 12.5) = 107.1Khz ADC_Cmd(ADC3, ENABLE); ADC_ResetCalibration(ADC3); while (ADC_GetResetCalibrationStatus(ADC3)); ADC_StartCalibration(ADC3); while (ADC_GetCalibrationStatus(ADC3)); ADC_SoftwareStartConvCmd(ADC3, ENABLE); ADC_AnalogWatchdogThresholdsConfig(ADC3, mA2d(100),0x000); ADC_AnalogWatchdogSingleChannelConfig(ADC3, ADC_Channel_6); ADC_AnalogWatchdogCmd(ADC3, ADC_AnalogWatchdog_SingleRegEnable); NVIC_InitStructure.NVIC_IRQChannel = ADC3_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //START ADC_ITConfig(ADC3, ADC_IT_AWD, ENABLE); ADC_SoftwareStartConvCmd(ADC3, ENABLE); // TIM config TIM_TimeBaseStructure.TIM_Period = 100 - 1; //Fclk = 10KHz /100 = 100Hz TIM_TimeBaseStructure.TIM_Prescaler = 7200 - 1; //prediv to 72MHz to 10KHz TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); TIM_ClearFlag(TIM2, TIM_FLAG_Update); TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); TIM_Cmd(TIM2, ENABLE); NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); GPIO_ResetBits(GPIOD, GPIO_Pin_12); GPIO_ResetBits(GPIOD, GPIO_Pin_13); mbi5025_Init(&ict_mbi5025); mbi5025_EnableOE(&ict_mbi5025); }
int main(void) { u8 loop = 1; char string[256]; //char string1[256]; uint16_t value; uint16_t sizestring; int icase = 0; initPA15(); init_USART1(BT_BAUD); systick_init(); led_Init(); button_init(); UART2_CONFIG(9600);// DMA_CONFIG(); setPA15On(); togglePA15(); while(loop){ //Send data through the bluetooth communication if (GPIOA->IDR & 0x0001) { if (CheckTick(delay_1,500)) { delay_1 = GetTickCount(); USART_puts(USART1, "troi oi 1 2 3 4 5 6 7 8 9 10\n"); led12(); } } if (CheckTick(delay_2,1000)) { delay_2 = GetTickCount(); //led13(); } if (CheckTick(delay_3,5000)) { delay_3 = GetTickCount(); led14(); } if (CheckTick(delay_4,100)) { delay_4 = GetTickCount(); while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET); //while(DMA_GetFlagStatus(DMA1_Stream2,DMA_FLAG_TCIF1) == RESET); value = USART_ReceiveData(USART1); memset(string,0,sizeof(string[0])*256); // Clear all to 0 so string properly represented sprintf(string,"%c",value); //sizestring = sizeof(string); //sprintf(string1,"%c",sizestring); if (string != NULL) { //USART_puts(USART1,string); if (string != NULL) icase = 1; else if (memchr(string, '2', sizeof(string))) icase = 2; else if (memchr(string, '3', sizeof(string))) icase = 3; else if (memchr(string, '4', sizeof(string))) icase = 4; else if (memchr(string, '5', sizeof(string))) icase = 5; //else icase = 6; switch (icase) { case 1: { USART_puts(USART1,string); icase = 0; led15(); } break; case 2: { USART_puts(USART1,"di xuong"); icase = 0; //led14(); } break; case 3: { USART_puts(USART1,"sang trai"); icase = 0; //led13(); } break; case 4: { USART_puts(USART1,"sang phai"); icase = 0; } break; case 5: { USART_puts(USART1,"can bang"); icase = 0; } break; // case 6: // { // //USART_puts(USART1,string); // icase = 0; // } // break; default: break; } //usart_send_string(string); //USART_SendData(USART1,value); } else { //usart_send_string(string); } led15(); } if (CheckTick(delay_5,250)) { delay_5 = GetTickCount(); } /* Disable the UART connection */ //USART_Cmd(USART1, DISABLE); } }