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 + -
显示快捷键?