pit_test.c
来自「Freescale MCF5445evb 参考测试代码」· C语言 代码 · 共 107 行
C
107 行
/* * File: main.c * Purpose: Main process * */#include "common.h"#include "pit.h"#include "pit_test.h"static void test_idle_state(void);static void Pin_Toggle(void);/********************************************************************/int8 pit_testperiodicity (void){ uint8 u8Char; uint8 i,j; uint32 au32FreqTests[] = { 500000, 100000, 10000, 1000, 100, 10, 1}; TEST_PRINT_1 ("\t***********************\t\n"); TEST_PRINT_1 ("Periodicity Test\n"); TEST_PRINT_1 ("Connect DTIN0 to O-Scope and press a key when ready\n"); WAIT_4_USER_INPUT(); test_idle_state(); for (i = 0; i < (sizeof(au32FreqTests)/sizeof(au32FreqTests[0])); i++){ for (j=0; j < 4; j++){ if (PIT_SetFreq(au32FreqTests[i],j) == -1){ TEST_PRINT_2("Error\n"); return -1; } PIT_EnableInts(Pin_Toggle, j); Pin_Toggle(); PIT_Start(j); TEST_PRINT_2_P ("PIT #%d\t", j); TEST_PRINT_2_P ("Frequency is %dHz. OK?(y/n)", au32FreqTests[i]); u8Char = WAIT_4_USER_INPUT(); PIT_Stop(j); TEST_PRINT_2 ("\n"); if ((u8Char != 'Y') && (u8Char != 'y')){ return -1; } } } return 0;}/********************************************************************/int8 pit_testcountdown (void){ uint8 u8Char; uint8 i,j; uint32 au32PeriodTests[] = {1, 5, 10}; TEST_PRINT_1 ("\t***********************\t\n"); TEST_PRINT_1 ("CountDown Test\n"); TEST_PRINT_1 ("Connect DREQ0 to O-Scope and press a key when ready\n"); WAIT_4_USER_INPUT(); test_idle_state(); for (i = 0; i < (sizeof(au32PeriodTests)/sizeof(au32PeriodTests[0])); i++){ for (j=0; j < 4; j++){ Pin_Toggle(); if (PIT_CountDown(au32PeriodTests[i],j) == -1){ TEST_PRINT_2("Error\n"); return -1; } Pin_Toggle(); TEST_PRINT_2_P ("PIT #%d\t", j); TEST_PRINT_2_P ("Frequency is %dms. OK?(y/n)", au32PeriodTests[i]); u8Char = WAIT_4_USER_INPUT(); PIT_Stop(j); TEST_PRINT_2 ("\n"); if ((u8Char != 'Y') && (u8Char != 'y')){ return -1; } } } return 0;}/********************************************************************/static void test_idle_state(void){ (void) PITInit(0, 800, 0); (void) PITInit(0, 800, 1); (void) PITInit(0, 800, 2); (void) PITInit(0, 800, 3); MCF_GPIO_PAR_DMA = MCF_GPIO_PAR_DMA_DREQ0_GPIO; MCF_GPIO_PDDR_DMA = MCF_GPIO_PDDR_DMA_PDDR0; MCF_GPIO_PODR_DMA = 0;}/********************************************************************/static void Pin_Toggle(void){ MCF_GPIO_PODR_DMA ^= 0x01;}/********************************************************************/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?