Esempio n. 1
0
/////////////////////////////////////////////////////////////////////////////
// Parser
/////////////////////////////////////////////////////////////////////////////
s32 CONSOLE_Parse(mios32_midi_port_t port, u8 byte)
{
  // temporary change debug port (will be restored at the end of this function)
  mios32_midi_port_t prev_debug_port = MIOS32_MIDI_DebugPortGet();
  MIOS32_MIDI_DebugPortSet(port);

  if( byte == '\r' ) {
    // ignore
  } else if( byte == '\n' ) {
    // example for parsing the command:
    char *separators = " \t";
    char *brkt;
    char *parameter;

    if( (parameter = strtok_r(line_buffer, separators, &brkt)) ) {
      if( strcmp(parameter, "help") == 0 ) {
	MIOS32_MIDI_SendDebugMessage("Welcome to " MIOS32_LCD_BOOT_MSG_LINE1 "!");
	MIOS32_MIDI_SendDebugMessage("Following commands are available:");
	MIOS32_MIDI_SendDebugMessage("  reset:          clears the current measurements\n");
	MIOS32_MIDI_SendDebugMessage("  help:           this page\n");
      } else if( strcmp(parameter, "reset") == 0 ) {
	MIOS32_IRQ_Disable();
	u8 including_min_max = 1;
	DelayInit(&d_tick, including_min_max);
	DelayInit(&d_measure, including_min_max);
	DelayInit(&d_beat, including_min_max);
	midi_clock_ctr = 0;
	total_delay = 0;
	MIOS32_IRQ_Enable();

	MIOS32_MIDI_SendDebugMessage("Measurements have been cleared!\n");
      } else {
	MIOS32_MIDI_SendDebugMessage("Unknown command - type 'help' to list available commands!\n");
      }
    }

    line_ix = 0;

  } else if( line_ix < (STRING_MAX-1) ) {
    line_buffer[line_ix++] = byte;
    line_buffer[line_ix] = 0;
  }

  // restore debug port
  MIOS32_MIDI_DebugPortSet(prev_debug_port);

  return 0; // no error
}
Esempio n. 2
0
int main(void)
{
    uint8_t last_sec;
    RTC_CalanderTypeDef RTC_Calander1;
    //初始化系统时钟 使用外部50M晶振 PLL倍频到100M
    SystemClockSetup(ClockSource_EX50M,CoreClock_100M);
    DelayInit();
    LED_Init(LED_PinLookup_CHK60EVB, kNumOfLED);
    UART_DebugPortInit(UART4_RX_C14_TX_C15, 115200);
    UART_printf("RTC TEST\r\n");
    RTC_Init();
	
	  //可以设置时间
    RTC_Calander1.Hour = 10;
    RTC_Calander1.Minute = 57;
    RTC_Calander1.Second = 58;
    RTC_Calander1.Month = 10;
    RTC_Calander1.Date = 10;
    RTC_Calander1.Year = 2013;
    //RTC_SetCalander(&RTC_Calander1);
    NVIC_EnableIRQ(RTC_IRQn);
    while(1) 
		{
        RTC_GetCalander(&RTC_Calander1); //读取时间
        if(last_sec != RTC_Calander1.Second)
				{
            UART_printf("%d-%d-%d %d:%d:%d\r\n", RTC_Calander1.Year, RTC_Calander1.Month, RTC_Calander1.Date, RTC_Calander1.Hour, RTC_Calander1.Minute, RTC_Calander1.Second);
            last_sec = RTC_Calander1.Second;
				}	
		}
 }
Esempio n. 3
0
int main(void)
{
	  //使用USB 必须CoreClock = 96M
    uint8_t usb_hid_send_buf[8] ={0,0,0,0,0,0};
    uint8_t usb_hid_rec_buf[8];
    uint8_t usb_hid_rec_cnt = 0; //接收帧计数
    SystemClockSetup(ClockSource_EX50M,CoreClock_96M);
    DelayInit();
    LED_Init(LED_PinLookup_CHK60EVB, kNumOfLED);
	  KBI_Init(KBI_PinLookup_CHK60EVB, kNumOfKEY);
    UART_DebugPortInit(UART4_RX_C14_TX_C15, 115200);
	  DisplayCPUInfo();
	     
	  UART_printf("Waitting for USB connect ...\r\n");
    USB_Init(); //初始化USB设备 
    USB_WaitDeviceEnumed(); //等待USB枚举成功
	  UART_printf("USB connected!\r\n");
	
    while(1) 
    {
			  KBI_Scan();
        usb_hid_send_buf[0] = KBI_GetKeyValue(kKEY1);
        usb_hid_send_buf[1] = KBI_GetKeyValue(kKEY2);	
        USB_HID_SendData(usb_hid_send_buf,8);  //发送数据
        if(USB_HID_RecData(usb_hid_rec_buf) != 0)  //接收到了数据
        {
            LED_Ctrl(kLED1, (usb_hid_rec_buf[0]&0x01)>>0);
            LED_Ctrl(kLED2, (usb_hid_rec_buf[0]&0x02)>>1);		
            usb_hid_rec_cnt++;
					  UART_printf("USB HID Data Received\r\n");
        }
        HID_Proc(); //执行HID进程
			  DelayMs(KBI_SCAN_PERIOD_IN_US/1000); //延时
    }
Esempio n. 4
0
int main(void)
{
    //定义串口初始化结构
    UART_InitTypeDef UART_InitStruct1;
    //初始化系统时钟 使用外部50M晶振 PLL倍频到100M
    SystemClockSetup(ClockSource_EX50M,CoreClock_100M);
    DelayInit();
    //初始化LED
    LED_Init(LED_PinLookup_CHKATOM, kNumOfLED);
    //KBI 初始化
    KBI_Init(KBI_PinLookup_CHKATOM, kNumOfKEY);
	
    UART_InitStruct1.UARTxMAP = UART4_RX_C14_TX_C15; //UART4模块 映射引脚:PTC14 PTC15
    UART_InitStruct1.UART_BaudRate = 115200;         //波特率 115200
    UART_Init(&UART_InitStruct1);                    //初始化串口
    //开启发送中断功能
    UART_ITConfig(UART4,UART_IT_TDRE,ENABLE);
    //接通NVIC上对应串口中断线
    NVIC_EnableIRQ(UART4_RX_TX_IRQn);
    //开始中断发送
    UART_SendDataInt(UART4,gTestBuffer,sizeof(gTestBuffer));
    //等待中断发送完成
    while(UART_TxIntStruct1.IsComplete == FALSE); 
    while(1)
    {
        LED_Toggle(kLED1);
        DelayMs(500);
    }
}
Esempio n. 5
0
int main(void)
{
    uint8_t ch;
    //定义串口初始化结构
    UART_InitTypeDef UART_InitStruct1;
    //初始化系统时钟 使用外部50M晶振 PLL倍频到100M
    SystemClockSetup(ClockSource_EX50M,CoreClock_100M);
    DelayInit();
    //初始化LED
    LED_Init(LED_PinLookup_CHKATOM, kNumOfLED);
    //KBI 初始化
    KBI_Init(KBI_PinLookup_CHKATOM, kNumOfKEY);
	
    UART_InitStruct1.UARTxMAP = UART4_RX_C14_TX_C15; //UART4模块 映射引脚:PTC14 PTC15
    UART_InitStruct1.UART_BaudRate = 115200;         //波特率 115200
    UART_Init(&UART_InitStruct1);                    //初始化串口

    while(1)
    {
        //接收成功
        if(UART_ReceiveData(UART4, &ch) == TRUE)
        {
        //echo
        UART_SendData(UART4, ch);
        }
    }
}
Esempio n. 6
0
int main(void)
{
    uint32_t LPTM_Value = 0;
    LPTM_InitTypeDef LPTM_InitStruct1;
    FTM_InitTypeDef FTM_InitStruct1;
    SystemClockSetup(ClockSource_EX50M,CoreClock_100M);
    DelayInit();
    LED_Init(LED_PinLookup_CHK60EVB, kNumOfLED);
    UART_DebugPortInit(UART4_RX_C14_TX_C15, 115200);
	  DisplayCPUInfo();
	  //在PC3上产生 1KHz 占空比50%的 方波
    FTM_InitStruct1.Frequency = 1000;
    FTM_InitStruct1.FTMxMAP = FTM0_CH3_PC4;
    FTM_InitStruct1.FTM_Mode = FTM_Mode_EdgeAligned;
    FTM_InitStruct1.InitalDuty = 5000;
    FTM_Init(&FTM_InitStruct1);
    //开启PTC5上的脉冲计数引脚
    LPTM_InitStruct1.LPTMxMap = LPTM_CH2_PC5;
    LPTM_InitStruct1.LPTM_InitCompareValue = 200;          //在脉冲计数模式下无意义
    LPTM_InitStruct1.LPTM_Mode = LPTM_Mode_PC_FALLING;     //下降沿触发计数
    LPTM_Init(&LPTM_InitStruct1);
    while(1) 
    {
        //读取脉冲技术值
        LPTM_Value = LPTM_GetTimerCounterValue(LPTMR0);
        //清空技术值
        LPTM_ResetTimeCounter(LPTMR0);
        UART_printf("LPTMR:%dHz\r\n", LPTM_Value);
        DelayMs(1000);
    }
}
Esempio n. 7
0
int main()
{
    //Set LD1 through LD4 as digital output
	DeviceInit();
	//initialize timer for delay
	DelayInit();

	/* Perform the main application loop.
	*/
	while (1) 
	{
		//drive LD1 high
		PORTWrite (IOPORT_B, BIT_10);
		DelayMs(1);
		//drive LD2 high
		PORTWrite (IOPORT_B, BIT_11);
		DelayMs(1);
		//drive LD3 high
		PORTWrite (IOPORT_B, BIT_12);
		DelayMs(1);
		//drive LD4 high
		PORTWrite (IOPORT_B, BIT_13);
		DelayMs(1);
	}
}
Esempio n. 8
0
int main(void)
{
    uint32_t i;
    DelayInit();
    GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP);
    UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200);
    printf("SD test\r\n");
    printf("please insert SD card...\r\n");
    //SD卡模块快速初始化,设置速度为20000000
    SD_QuickInit(20000000);
    //获取SD卡的容量
    printf("SD size:%dMB\r\n", SD_GetSizeInMB());
    /* 读取0扇区数据,每一个扇区512字节 */
    SD_ReadSingleBlock(0, sd_buffer);
    /* 打印0扇区数据 */
    printf("sectoer 0 data:\r\n");
    for(i = 0; i < 512; i++)
    {
        printf("0x%02X ", sd_buffer[i]);
    }
    while(1)
    {
        //小灯闪烁
        GPIO_ToggleBit(HW_GPIOE, 6);
        DelayMs(500);
    }
}
Esempio n. 9
0
int main(void)
{
    DelayInit();
    
    GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP); /* LED */
    GPIO_QuickInit(HW_GPIOE, 26, kGPIO_Mode_IPU); /* KEY */
    
    UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200);
    
    /* 初始化看门狗 */
    WDOG_InitTypeDef WDOG_InitStruct1;
    WDOG_InitStruct1.windowInMs = 0;
    WDOG_InitStruct1.mode = kWDOG_Mode_Normal;  //设置看门狗处于正常工作模式
    WDOG_InitStruct1.timeOutInMs = 2000; /* 时限 2000MS : 2000MS 内没有喂狗则复位 */
    WDOG_Init(&WDOG_InitStruct1);
    
    printf("WDOG test start!\r\n");
    printf("press KEY1 to feed dog within 2S or system with reset!\r\n");
    
    /* 点亮LED 然后熄灭  指示系统运行从新上电运行 */
    GPIO_WriteBit(HW_GPIOE, 6, 0);
    DelayMs(200);
    GPIO_WriteBit(HW_GPIOE, 6, 1);
    while(1)
    {
        if(GPIO_ReadBit(HW_GPIOE, 26) == 0) /* 按键被按下 */
        {
            /* 喂狗 防止复位 */
            printf("wdog feed! we have 2s\r\n");
            WDOG_Refresh(); //喂狗
            DelayMs(100);
        }
        DelayMs(10);
    }
}
Esempio n. 10
0
int main(void)
{
	DelayInit();
	
	// Initialize timer interrupt
	TIM2_INT_Init();
	// Initialize LED matrix GPIO pin
	LedMatrixInit();
	
	while (1)
	{
		// Display heart symbol
		for (row = 0; row <= 7; row++)
		{
			buffer[row] = heart_symbol[row];
		}
		DelayMs(1000);
		// Clear display
		for (row = 0; row <= 7; row++)
		{
			buffer[row] = 0x00;
		}
		DelayMs(1000);
	}
}
Esempio n. 11
0
int main(void)
{
    uint8_t i;
    //初始化系统时钟 使用外部50M晶振 PLL倍频到100M
    SystemClockSetup(ClockSource_EX50M,CoreClock_100M);
    DelayInit();
    //初始化LED
    LED_Init(LED_PinLookup_CHKATOM, kNumOfLED);
    //KBI 初始化
    KBI_Init(KBI_PinLookup_CHKATOM, kNumOfKEY);
    //闪灯 制造复位效果
    for(i = 0; i < 10; i++)
    {
        LED_Toggle(kLED1);
        DelayMs(50);
    }
    //初始化看门狗 如果1000MS 内没有喂狗则 复位
    WDOG_Init(1000);
    while(1)
    {   
        KBI_Scan();
        if((KBI_GetKeyState(kKEY1) == kKBI_SINGLE))
        {  
            //如果案件按下 喂狗:
            WDOG_Feed();
        }
        //扫描间隔延时
        DelayMs(KBI_SCAN_PERIOD_IN_US/1000);
    }
}
Esempio n. 12
0
int main(void)
{
    uint32_t instance; /*存放 UART 的模块号 */
    DelayInit();
    DelayMs(10);
    GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP);
    
    /* 初始化UART 使用快速初始化方式 波特率 115200 其他配置默认 返回初始化后 UART的模块号 */
    instance = UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200);
    
    /* 当使用串口初始化后 printf 被默认连接到第一个被初始化的串口上*/
    printf("UART%d OK! Hello Kinetis\r\n", instance);
    
    while(1)
    {
        /* 串口 按字节发送 数据 注意 HW_UART0必须是已经初始化过的模块 否则 将产生错误*/
        UART_WriteByte(instance, 'h');
        UART_WriteByte(instance, 'e');
        UART_WriteByte(instance, 'l');
        UART_WriteByte(instance, 'l');
        UART_WriteByte(instance, 'o');
        UART_WriteByte(instance, '\r');
        UART_WriteByte(instance, '\n');
        /* 闪烁小灯 */
        GPIO_ToggleBit(HW_GPIOE, 6);
        DelayMs(500);
    }
}
Esempio n. 13
0
int main(void)
{
    SystemClockSetup(ClockSource_EX50M,CoreClock_100M);
    DelayInit();
    LED_Init(LED_PinLookup_CHK60EVB, kNumOfLED);
    UART_DebugPortInit(UART4_RX_C14_TX_C15, 115200);
    DisplayCPUInfo();
    GUI_Init(&CHGUI_InitStruct1);
    GUI_SetFontFormName("FONT_CourierNew");
    while(1) 
    {
        GUI_GotoXY(0, 0);
        GUI_TOUCH_GetState(&State);
        //打印物理AD坐标
        GUI_printf("Phy:X:%04d Y:%04d\r\n", GUI_TOUCH_GetxPhys(), GUI_TOUCH_GetyPhys());
        //打印逻辑AD坐标
        GUI_printf("Log:X:%04d Y:%04d\r\n", State.x, State.y);	
        GUI_printf("State:%01d\r\n", State.Pressed);
        //LCD 画笔跟踪
        GUI_DrawPoint(State.x, State.y);			
        DelayMs(10);
        //GUI 触摸屏处理函数 每10MS调用一次
        GUI_TOUCH_Exec();
    }
}
Esempio n. 14
0
int main(void)
{
    //初始化系统时钟 使用外部50M晶振 PLL倍频到100M
    SystemClockSetup(ClockSource_EX50M,CoreClock_100M);
    DelayInit();
    //初始化LED
    LED_Init(LED_PinLookup_CHK60EVB, kNumOfLED);
	  //KBI 初始化
	  KBI_Init(KBI_PinLookup_CHK60EVB, kNumOfKEY);
    while(1)
    {   
			  //扫描按键
        KBI_Scan();
        if(KBI_GetKeyState(kKEY1) == kKBI_SINGLE)
        {
            LED_Toggle(kLED1);
        }
        if(KBI_GetKeyState(kKEY1) == kKBI_LONG)
        {
            LED_Toggle(kLED2);
        }
				//扫描间隔延时
        DelayMs(KBI_SCAN_PERIOD_IN_US/1000);
    }
}
Esempio n. 15
0
/*
     实验名称:WDOG窗口看门狗
     实验平台:渡鸦开发板
     板载芯片:MK60DN512ZVQ10
 实验效果:开启看门狗的窗口模式,必须在规定的时间范围内喂狗,否则芯片复位
*/
int main(void)
{
    DelayInit();
    
    GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP); /* LED */
    
    UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200);
    
    /* 初始化看门狗 */
    WDOG_InitTypeDef WDOG_InitStruct1 = {0};
    WDOG_InitStruct1.mode = kWDOG_Mode_Window;   //设置看门狗为窗口模式
    WDOG_InitStruct1.windowInMs = 1000;   /* 开窗时间 设置为窗体模式后 喂狗必须在 看门狗开始计时后 1000 - 2000 MS内完成 多了少了都复位 比普通看门狗严格*/
    WDOG_InitStruct1.timeOutInMs = 2000; /* 时限 2000MS : 2000MS 内没有喂狗则复位 */
    WDOG_Init(&WDOG_InitStruct1);
    
    printf("\r\nSYSTEM RESET!!!!!!!%d\r\n", WDOG_GetResetCounter());
    printf("press any character to feed dog feed, must be in windows time\r\n");
    
    static uint32_t i;
    uint16_t ch;
    while(1)
    {
        if(UART_ReadByte(HW_UART0, &ch) == 0)
        {
            printf("wdog feed succ!\r\n");
            WDOG_Refresh(); //喂狗
            i = 0;
        }
        printf("cnt:i:%d\r", i++);
        DelayMs(100);
        GPIO_ToggleBit(HW_GPIOE, 6);
    }
}
Esempio n. 16
0
int main(void)
{
	  //使用USB 必须CoreClock = 96M
    uint8_t FnKey = 0;
    uint8_t Keybuf[6] = {0,0,0,0,0,0};
    SystemClockSetup(ClockSource_EX50M,CoreClock_96M);
    DelayInit();
    LED_Init(LED_PinLookup_CHK60EVB, kNumOfLED);
	  KBI_Init(KBI_PinLookup_CHK60EVB, kNumOfKEY);
    UART_DebugPortInit(UART4_RX_C14_TX_C15, 115200);
	  DisplayCPUInfo();
	     
	  UART_printf("Waitting for USB connect ...\r\n");
    USB_Init(); //初始化USB设备 
    USB_WaitDeviceEnumed(); //等待USB枚举成功
	  UART_printf("USB connected!\r\n");
	
    while(1) 
    {
			  KBI_Scan();
			  if(KBI_GetKeyState(kKEY1) == kKBI_SINGLE)
				{
            Keybuf[0] = 4;  //A 的USBHIDKeyCode
				    USB_HID_SetKeyBoard(FnKey,Keybuf);
				}
			  if(KBI_GetKeyState(kKEY2) == kKBI_SINGLE)
				{
            Keybuf[0] = 5;  //A 的USBHIDKeyCode
				    USB_HID_SetKeyBoard(FnKey,Keybuf);
				}
        HID_Proc(); //执行HID进程
			  DelayMs(KBI_SCAN_PERIOD_IN_US/1000); //延时
    }
}
Esempio n. 17
0
int main(void)
{
  //Clock Setup Internal Clock , CoreClock = 24M
	SystemClockSetup(ClockSource_IRC,CoreClock_24M);
	//DelayInit
	DelayInit();
	//LED Init
	LED_Init();
	
  //Init a debug UART prot
//	UART_DebugPortInit(UART1_RX_PC03_TX_PC04,115200);
	UART_DebugPortInit(UART0_RX_PB16_TX_PB17,115200);
	DisplayCPUInfo();



	
	GPIO_Test();
	MAG3110_Test();
	
	AT24Cxx_Test();
	SPIFLASH_Test();
	ADC_Test();
       WDOG_Init();
	while(1);

}
Esempio n. 18
0
int main(void)
{
    DelayInit();
    UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200);
    printf("CHBootloader\r\n");
    
    UART_CallbackRxInstall(HW_UART0, UART_ISR);
    FLASH_Init();
    
    Boot.name = "MK6xDN1M(512)VLQ12";
    Boot.AppStartAddr = 0x5000;
    Boot.TimeOut = 2000;
    Boot.FlashPageSize = FLASH_GetSectorSize();
    Boot.send = send;
    Boot.flash_erase = flash_erase;
    Boot.flash_write = flash_write;
    
    BootloaderInit(&Boot);
    
    UART_ITDMAConfig(HW_UART0, kUART_IT_Rx, true);
    
    while(1)
    {
        BootloaderProc();
    }
}
Esempio n. 19
0
int main(void)
{
	DelayInit();
	
	// Initialize exernal interrupt
	EXTI15_10_Init();
	
	// Initialize PB13 as push-pull output for LED
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_13;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz;
	GPIO_Init(GPIOB, &GPIO_InitStruct);
	// Initialize PC13 as push-pull output for LED
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_13;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz;
	GPIO_Init(GPIOC, &GPIO_InitStruct);
	
	while (1)
	{
		// Blink LED on PC13
		GPIOC->BRR = GPIO_Pin_13;
		DelayMs(1000);
		GPIOC->BSRR = GPIO_Pin_13;
		DelayMs(1000);
	}
}
Esempio n. 20
0
int main(void)
{
    DelayInit();
    GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP);
    UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200);
    
    /* 设置PORTE PORTA 中断 */
    GPIO_QuickInit(HW_GPIOE,26, kGPIO_Mode_IPU);
    GPIO_QuickInit(HW_GPIOA, 4, kGPIO_Mode_IPU);
    GPIO_CallbackInstall(HW_GPIOE, PORTE_ISR);
    GPIO_CallbackInstall(HW_GPIOA, PORTA_ISR);
    GPIO_ITDMAConfig(HW_GPIOE, 26, kGPIO_IT_RisingEdge, true);
    GPIO_ITDMAConfig(HW_GPIOA, 4,  kGPIO_IT_RisingEdge, true);
    
    printf("NVIC test connect E26&A04\r\n");
    /* 将系统 中断优先级分组 可以配置 16个 抢占优先级 和16个 子优先级 */
    NVIC_SetPriorityGrouping(NVIC_PriorityGroup_2);  //中断优先级分成2组
    NVIC_SetPriority(PORTE_IRQn, NVIC_EncodePriority(NVIC_PriorityGroup_2, 2, 2)); //设置PTE端口的抢占优先级的子优先级
    NVIC_SetPriority(PORTA_IRQn, NVIC_EncodePriority(NVIC_PriorityGroup_2, 2, 2));
    
    while(1)
    {
        GPIO_ToggleBit(HW_GPIOE, 6);
        DelayMs(500);
    }
}
Esempio n. 21
0
int main(void)
{
    //初始化系统时钟 使用外部50M晶振 PLL倍频到100M
    SystemClockSetup(ClockSource_EX50M,CoreClock_100M);
    DelayInit();
    LED_Init(LED_PinLookup_CHK60EVB, kNumOfLED);
    UART_DebugPortInit(UART4_RX_C14_TX_C15, 115200);
    DisplayCPUInfo();
    //初始化GUI
    GUI_Init(&CHGUI_InitStruct1);
    //设置背景色为黑色
    GUI_SetBkColor(BLACK);
    //普通字符显示模式
    GUI_SetTextMode(GUI_TEXTMODE_NORMAL);
    //设置前景色为红色
    GUI_SetColor(LGRAY);
    //将当前字体设置为CourierNew
    GUI_SetFontFormName("FONT_CourierNew");
    //打印字符
    GUI_printf("HelloWorld\r\n");
    //打印CHGUI版本号
    GUI_printf("CHGUI_Version:%0.2f\r\n", (float)(GUI_VERSION/100));
    //打印LCDID
    GUI_printf("ID:%X\r\n", GUI_GetDeivceID());
    while(1)
    {

    }
}
Esempio n. 22
0
int main(void)
{
    DelayInit();
    SYSTICK_Init((1000*1000)/OS_TICKS_PER_SEC);
    SYSTICK_ITConfig(true);

    UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200);

    printf("uCOSII test\r\n");

    OSInit();  //OS初始化
    OSTaskCreate(AppLED1Task,(void *)0,
                 &APP_LED1_STK[TASK_STK_SIZE-1],
                 APP_LED1_TASK_PRIO); //建立LED1 任务
    OSTaskCreate(AppLED0Task,(void *)0,
                 &APP_LED0_STK[TASK_STK_SIZE-1],
                 APP_LED0_TASK_PRIO); //建立LED0 任务

    SYSTICK_Cmd(true);

    /* 控制权交给操作系统 */
    OSStart();
    /* 程序永远不会运行到这 */
    while(1);
}
Esempio n. 23
0
int main(void)
{
    DelayInit();
    UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200);
    GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP); /* LED */

    printf("calc the PWM duty, pwm will be generated on PA08 and input pin: PC01 and PC02\r\n");
    
    FTM_PWM_QuickInit(FTM1_CH0_PA08, kPWM_EdgeAligned, 200);
	FTM_PWM_ChangeDuty(HW_FTM1, HW_FTM_CH0, 2500);/* 25% */
    
    /* 配置IC 功能 设置中断 */
    FTM_IC_QuickInit(FTM0_CH0_PC01, kFTM_ClockDiv128);
    FTM_IC_SetTriggerMode(HW_FTM0, HW_FTM_CH0, kFTM_IC_RisingEdge);
    FTM_CallbackInstall(HW_FTM0, FTM0_ISR);
    FTM_ITDMAConfig(HW_FTM0, kFTM_IT_CH0, true);
	
	FTM_IC_QuickInit(FTM0_CH1_PC02, kFTM_ClockDiv128);
    FTM_IC_SetTriggerMode(HW_FTM0, HW_FTM_CH1, kFTM_IC_FallingEdge);
    /* FTM_CallbackInstall(HW_FTM1, FTM1_ISR); */
    FTM_ITDMAConfig(HW_FTM0, kFTM_IT_CH1, true);
    
	while(1)
    {
        /*
		printf("Frequency:%6dHz", InputCaptureValue);
		printf(" Frequency1:%6dHz\r\n", InputCaptureValue1);
		*/
		printf("Duty = %3f%% \n",((double)InputCaptureValue)/((double)InputCaptureValue1)*100.0);
        GPIO_ToggleBit(HW_GPIOE, 6); //控制小灯闪烁
        DelayMs(500);
    }
}
Esempio n. 24
0
int main(void)
{
	// Initialize delay function
	DelayInit();
	
	// Initialize ADC, PWM, and GPIO
	ADC_Setup();
	PWM_Setup();
	GPIO_Setup();
	
	while (1)
	{
		// Read input switch (active low)
		effect = GPIO_ReadInputData(GPIOB);
		// Invert and mask input switch bits
		effect = ~effect & 0x7000;
		
		// If any audio effect is active, then turn on LED 
		if (effect)
		{
			// Turn on LED (active low)
			GPIO_ResetBits(GPIOC, GPIO_Pin_13);
		}
		else
		{
			GPIO_SetBits(GPIOC, GPIO_Pin_13);
		}
		
		DelayMs(50);
	}
}
Esempio n. 25
0
int main(void)
{
    //定义串口初始化结构
    UART_InitTypeDef UART_InitStruct1;
    //初始化系统时钟 使用外部50M晶振 PLL倍频到100M
    SystemClockSetup(ClockSource_EX50M,CoreClock_100M);
    DelayInit();
    //初始化LED
    LED_Init(LED_PinLookup_CHKATOM, kNumOfLED);
    //KBI 初始化
    KBI_Init(KBI_PinLookup_CHKATOM, kNumOfKEY);
	
    UART_InitStruct1.UARTxMAP = UART4_RX_C14_TX_C15; //UART4模块 映射引脚:PTC14 PTC15
    UART_InitStruct1.UART_BaudRate = 115200;         //波特率 115200
    UART_Init(&UART_InitStruct1);                    //初始化串口
    //开启接收中断
    UART_ITConfig(UART4, UART_IT_RDRF, ENABLE);
    //接通NVIC上对应串口中断线
    NVIC_EnableIRQ(UART4_RX_TX_IRQn);
	
    //等待串口信息
    while(1)
    {
    }
 }
Esempio n. 26
0
int main(void)
{
    int value;
    DelayInit();

    GPIO_QuickInit(HW_GPIOD, 7, kGPIO_Mode_OPP);
    GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP);
    
    UART_QuickInit(UART0_RX_PA01_TX_PA02, 115200);
    
    printf("LPTMR test\r\n");
    printf("PWM will generated from PC04, LPTMR will measure pulse on PC05\r\n");
    printf("please connect PC04&PC05\r\n");
    
    /* 边沿对其方式产生PWM波 */
    TPM_PWM_QuickInit(TPM0_CH3_PC04, kPWM_EdgeAligned, 50);
    
    /* 占空比 50% */
    TPM_PWM_ChangeDuty(HW_TPM0, kTPM_IT_CH3, 5000);
    
    LPTMR_PC_QuickInit(LPTMR_ALT2_PC05);
    
    while(1)
    {
        value = LPTMR_PC_ReadCounter();
        printf("lptmr:%dHz\r\n", value);
        LPTMR_ClearCounter();
        DelayMs(1000);
    }
}
Esempio n. 27
0
int main(void)
{
    //定义串口初始化结构
    UART_InitTypeDef UART_InitStruct1;
    //初始化系统时钟 使用外部50M晶振 PLL倍频到100M
    SystemClockSetup(ClockSource_EX50M,CoreClock_100M);
    DelayInit();
    //初始化LED
    LED_Init(LED_PinLookup_CHKATOM, kNumOfLED);
    //KBI 初始化
   KBI_Init(KBI_PinLookup_CHKATOM, kNumOfKEY);
    
    UART_InitStruct1.UARTxMAP = UART4_RX_C14_TX_C15; //UART4模块 映射引脚:PTC14 PTC15
    UART_InitStruct1.UART_BaudRate = 115200;         //波特率 115200
    UART_Init(&UART_InitStruct1);                    //初始化串口
	
    UART_SendData(UART4, 'H');
    UART_SendData(UART4, 'e');
    UART_SendData(UART4, 'l');
    UART_SendData(UART4, 'l');
    UART_SendData(UART4, 'o');
    //一次发送多个字符串
    UART_SendBytes(UART4, "12345678", 8);
    while(1)
    {
			
    }
}
Esempio n. 28
0
/*
     实验名称:Flexbus驱动ARAM
     实验平台:渡鸦开发板
     板载芯片:MK60DN512ZVQ10
 实验效果:测试外挂的SRAM工作情况  
       具体的SRAM应用请参见sram.c文件
*/
int main(void)
{
    DelayInit();
    DelayMs(10);
    GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP);
    UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200);
    
    printf("Flexbus SRAM test\r\n");
    
    /* 初始化外部SRAM */
    SRAM_Init();
    /* SRAM 自测 */
    if(!SRAM_SelfTest())
    {
        printf("sram test ok!\r\n");
    }
    else
    {
        printf("sram test failed!\r\n");
    }
    while(1)
    {
        GPIO_ToggleBit(HW_GPIOE, 6);
        DelayMs(500);
    }
}
Esempio n. 29
0
/*
    Initializes the OLED for debugging purposes
*/
void beginMyOled(){
   DelayInit();
   OledInit();

   OledSetCursor(0, 0);
   OledClearBuffer();
   OledUpdate();
}
/**
  ******************************************************************************
  * @brief	Initialize GPIO pins for keypad.
  * @param	None
  * @retval	None
  ******************************************************************************
  */
void KeypadInit()
{
	DelayInit();
	
	// GPIO clock for keypad columns and rows
	RCC_APB2PeriphClockCmd(KEYPAD_RCC_GPIO_COL, ENABLE);
	RCC_APB2PeriphClockCmd(KEYPAD_RCC_GPIO_ROW, ENABLE);
}