From: asterix Date: Thu, 29 May 2008 16:34:36 +0000 (+0000) Subject: Move pwm test to drv dir. X-Git-Tag: 2.0.0~529 X-Git-Url: https://codewiz.org/gitweb?a=commitdiff_plain;h=97834bb9edb61250c69430ef259bff6262d10e0a;p=bertos.git Move pwm test to drv dir. git-svn-id: https://src.develer.com/svnoss/bertos/trunk@1405 38d2e660-2303-0410-9eaa-f027e97ec537 --- diff --git a/bertos/cpu/arm/drv/pwm_test.c b/bertos/cpu/arm/drv/pwm_test.c deleted file mode 100644 index 1ab6d834..00000000 --- a/bertos/cpu/arm/drv/pwm_test.c +++ /dev/null @@ -1,184 +0,0 @@ -/** - * \file - * - * - * - * \brief Test for PWM driver (implementation) - * - * \version $Id$ - * - * \author Daniele Basile - */ - -#include -#include - -#include -#include - -#include -#include -#include -#include - -#include - -/* - * Esample of value for duty cycle" - * - * - 100% => 0xFFFFFFFF - * - 80% => 0xCCCCCCCC - * - 75% => 0xBFFFFFFF - * - 50% => 0x7FFFFFFF - * - 25% => 0x3FFFFFFF - * - 33% => 0x55555555 - * - 16% => 0x2AAAAAAA - */ - -#define PWM_TEST_CH0 0 -#define PWM_TEST_CH0_FREQ 100UL // 100Hz -#define PWM_TEST_CH0_DUTY 0xBFFF // 80% - -#define PWM_TEST_CH1 1 -#define PWM_TEST_CH1_FREQ 1000UL // 1000Hz -#define PWM_TEST_CH1_DUTY 0xBFFF // 75% - -#define PWM_TEST_CH2 2 -#define PWM_TEST_CH2_FREQ 12356UL // 12356Hz -#define PWM_TEST_CH2_DUTY 0x7FFF // 50% - -#define PWM_TEST_CH3 3 -#define PWM_TEST_CH3_FREQ 100000UL // 100KHz -#define PWM_TEST_CH3_DUTY 0x5555 // 33% - -#define PWM_TEST_CH_SET(index) \ - do { \ - pwm_setFrequency(PWM_TEST_CH##index , PWM_TEST_CH##index##_FREQ); \ - pwm_setDuty(PWM_TEST_CH##index, PWM_TEST_CH##index##_DUTY); \ - pwm_enable(PWM_TEST_CH##index, true); \ - } while (0) - - -/** - * Setup all needed to test PWM on AT91 - * - */ -int pwm_testSetup(void) -{ - IRQ_ENABLE; - kdbg_init(); - sysirq_init(); - timer_init(); - - pwm_init(); - - return 0; -} - - -/** - * Test suit for genation of pwm waveform. - * - */ -int pwm_testRun(void) -{ - - kputs("PWM test\n\n"); - - kputs("Init pwm.."); - pwm_testSetup(); - kputs("done.\n"); - - PWM_TEST_CH_SET(0); - kprintf("PWM test set ch[%d] =>freq[%ld], duty[%d]\n", PWM_TEST_CH0, PWM_TEST_CH0_FREQ, PWM_TEST_CH0_DUTY); - PWM_TEST_CH_SET(1); - kprintf("PWM test set ch[%d] =>freq[%ld], duty[%d]\n", PWM_TEST_CH1, PWM_TEST_CH1_FREQ, PWM_TEST_CH1_DUTY); - PWM_TEST_CH_SET(2); - kprintf("PWM test set ch[%d] =>freq[%ld], duty[%d]\n", PWM_TEST_CH2, PWM_TEST_CH2_FREQ, PWM_TEST_CH2_DUTY); - PWM_TEST_CH_SET(3); - kprintf("PWM test set ch[%d] =>freq[%ld], duty[%d]\n", PWM_TEST_CH3, PWM_TEST_CH3_FREQ, PWM_TEST_CH3_DUTY); - - return 0; -} - -/** - * - */ -int pwm_testTearDown(void) -{ - /* */ - return 0; -} - -#ifdef _TEST - -int main(void) -{ - pwm_testRun(); - - - - kputs("Parto con il test!\n"); - kprintf("PWM CURRENT ch[%d] => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_TEST_CH0, PWM_CMR0, PWM_CDTY0, PWM_CPRD0, PWM_CUPD0); - - for(;;) - { - - pwm_setDuty(0,0); - timer_delay(5000); - kprintf("TEST10 => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_CMR0, PWM_CDTY0, PWM_CPRD0, PWM_CUPD0); - - - pwm_setDuty(0,0x7FFF); - timer_delay(5000); - kprintf("TEST50 => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_CMR0, PWM_CDTY0, PWM_CPRD0, PWM_CUPD0); - - - pwm_setDuty(0,0x5555); - timer_delay(5000); - kprintf("TEST33 => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_CMR0, PWM_CDTY0, PWM_CPRD0, PWM_CUPD0); - - - pwm_setDuty(0,0xCCCC); - timer_delay(5000); - kprintf("TEST80 => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_CMR0, PWM_CDTY0, PWM_CPRD0, PWM_CUPD0); - kputs("--------\n"); - - -// kprintf("PWM test ch[%d] => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_TEST_CH0, PWM_CMR0, PWM_CDTY0, PWM_CPRD0, PWM_CUPD0); -// kprintf("PWM test ch[%d] => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_TEST_CH1, PWM_CMR1, PWM_CDTY1, PWM_CPRD1, PWM_CUPD1); -// kprintf("PWM test ch[%d] => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_TEST_CH2, PWM_CMR2, PWM_CDTY2, PWM_CPRD2, PWM_CUPD2); -// kprintf("PWM test ch[%d] => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_TEST_CH3, PWM_CMR3, PWM_CDTY3, PWM_CPRD3, PWM_CUPD3); - } - -} -#endif - - diff --git a/bertos/drv/pwm_test.c b/bertos/drv/pwm_test.c new file mode 100644 index 00000000..447b3d59 --- /dev/null +++ b/bertos/drv/pwm_test.c @@ -0,0 +1,159 @@ +/** + * \file + * + * + * + * \brief Test for PWM driver (implementation) + * + * \version $Id$ + * + * \author Daniele Basile + */ + +#include +#include + +#include +#include + +#include +#include +#include +#include + +#include + +/* + * Esample of value for duty cycle" + * + * - 100% => 0xFFFFFFFF + * - 80% => 0xCCCCCCCC + * - 75% => 0xBFFFFFFF + * - 50% => 0x7FFFFFFF + * - 25% => 0x3FFFFFFF + * - 33% => 0x55555555 + * - 16% => 0x2AAAAAAA + */ + +#define PWM_TEST_CH0 0 +#define PWM_TEST_CH0_FREQ 100UL // 100Hz +#define PWM_TEST_CH0_DUTY 0xBFFF // 80% + +#define PWM_TEST_CH1 1 +#define PWM_TEST_CH1_FREQ 1000UL // 1000Hz +#define PWM_TEST_CH1_DUTY 0xBFFF // 75% + +#define PWM_TEST_CH2 2 +#define PWM_TEST_CH2_FREQ 12356UL // 12356Hz +#define PWM_TEST_CH2_DUTY 0x7FFF // 50% + +#define PWM_TEST_CH3 3 +#define PWM_TEST_CH3_FREQ 100000UL // 100KHz +#define PWM_TEST_CH3_DUTY 0x5555 // 33% + +#define PWM_TEST_CH_SET(index) \ + do { \ + pwm_setFrequency(PWM_TEST_CH##index , PWM_TEST_CH##index##_FREQ); \ + pwm_setDuty(PWM_TEST_CH##index, PWM_TEST_CH##index##_DUTY); \ + pwm_enable(PWM_TEST_CH##index, true); \ + } while (0) + +/** + * Test suit for genation of pwm waveform. + * + */ +void pwm_test(void) +{ + + kputs("PWM test\n\n"); + + kputs("Init pwm.."); + + pwm_init(); + kputs("done.\n"); + + PWM_TEST_CH_SET(0); + kprintf("PWM test set ch[%d] =>freq[%ld], duty[%d]\n", PWM_TEST_CH0, PWM_TEST_CH0_FREQ, PWM_TEST_CH0_DUTY); + PWM_TEST_CH_SET(1); + kprintf("PWM test set ch[%d] =>freq[%ld], duty[%d]\n", PWM_TEST_CH1, PWM_TEST_CH1_FREQ, PWM_TEST_CH1_DUTY); + PWM_TEST_CH_SET(2); + kprintf("PWM test set ch[%d] =>freq[%ld], duty[%d]\n", PWM_TEST_CH2, PWM_TEST_CH2_FREQ, PWM_TEST_CH2_DUTY); + PWM_TEST_CH_SET(3); + kprintf("PWM test set ch[%d] =>freq[%ld], duty[%d]\n", PWM_TEST_CH3, PWM_TEST_CH3_FREQ, PWM_TEST_CH3_DUTY); +} + + +int main(void) +{ + IRQ_ENABLE; + kdbg_init(); + sysirq_init(); + timer_init(); + pwm_test(); + + + + kputs("Parto con il test!\n"); + kprintf("PWM CURRENT ch[%d] => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_TEST_CH0, PWM_CMR0, PWM_CDTY0, PWM_CPRD0, PWM_CUPD0); + + for(;;) + { + + pwm_setDuty(0,0); + timer_delay(5000); + kprintf("TEST10 => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_CMR0, PWM_CDTY0, PWM_CPRD0, PWM_CUPD0); + + + pwm_setDuty(0,0x7FFF); + timer_delay(5000); + kprintf("TEST50 => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_CMR0, PWM_CDTY0, PWM_CPRD0, PWM_CUPD0); + + + pwm_setDuty(0,0x5555); + timer_delay(5000); + kprintf("TEST33 => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_CMR0, PWM_CDTY0, PWM_CPRD0, PWM_CUPD0); + + + pwm_setDuty(0,0xCCCC); + timer_delay(5000); + kprintf("TEST80 => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_CMR0, PWM_CDTY0, PWM_CPRD0, PWM_CUPD0); + kputs("--------\n"); + + +// kprintf("PWM test ch[%d] => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_TEST_CH0, PWM_CMR0, PWM_CDTY0, PWM_CPRD0, PWM_CUPD0); +// kprintf("PWM test ch[%d] => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_TEST_CH1, PWM_CMR1, PWM_CDTY1, PWM_CPRD1, PWM_CUPD1); +// kprintf("PWM test ch[%d] => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_TEST_CH2, PWM_CMR2, PWM_CDTY2, PWM_CPRD2, PWM_CUPD2); +// kprintf("PWM test ch[%d] => cmr[%ld], dty[%ld], prd[%ld], up[%ld]\n", PWM_TEST_CH3, PWM_CMR3, PWM_CDTY3, PWM_CPRD3, PWM_CUPD3); + } + +} + + +