]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Fixed PWM with correct API config values according to spec. Done for powerpc and...
authorjcar <devnull@localhost>
Wed, 22 Jun 2011 13:21:47 +0000 (15:21 +0200)
committerjcar <devnull@localhost>
Wed, 22 Jun 2011 13:21:47 +0000 (15:21 +0200)
arch/hc1x/hcs12d/drivers/Pwm.c
arch/ppc/mpc55xx/drivers/Pwm.c

index 77a13281d876d8ab43749b09708dc9bdd0988792..fefad2004ea789c62f3695b9c66d299b13d5f2a9 100644 (file)
@@ -138,7 +138,7 @@ void Pwm_Init(const Pwm_ConfigType* ConfigPtr) {
     }\r
 }\r
 \r
-#if PWM_DEINIT_API==STD_ON\r
+#if PWM_DE_INIT_API==STD_ON\r
 \r
 void Pwm_DeInit() {\r
 \r
@@ -154,7 +154,7 @@ void Pwm_DeInit() {
  * PWM083: The function Pwm_SetPeriodAndDuty shall be pre compile time\r
  * changeable ON/OFF by the configuration parameter PwmSetPeriodAndDuty.\r
  */\r
-#if PWM_SET_PERIOD_AND_DUTY==STD_ON\r
+#if PWM_SET_PERIOD_AND_DUTY_API==STD_ON\r
 void Pwm_SetPeriodAndDuty(Pwm_ChannelType Channel, Pwm_PeriodType Period,\r
                Pwm_DutyCycleType DutyCycle)\r
 {\r
@@ -245,7 +245,7 @@ void Pwm_SetOutputToIdle(Pwm_ChannelType Channel) {
  * PWM085: The function Pwm_GetOutputState shall be pre compile configurable\r
  * ON/OFF by the configuration parameter PwmGetOutputState\r
  */\r
-#if PWM_GET_OUTPUT_STATE==STD_ON\r
+#if PWM_GET_OUTPUT_STATE_API==STD_ON\r
 /*\r
  * PWM022: The function Pwm_GetOutputState shall read the internal state\r
  * of the PWM output signal and return it.\r
index 71a4ea0a13ade87d45f1aee23db06b7e6ea3d085..39cff08fe6325f3938c2c1db313deb12b034a05d 100644 (file)
@@ -306,16 +306,110 @@ void Pwm_Init(const Pwm_ConfigType* ConfigPtr) {
 \r
                 // Install ISR\r
                        #if defined(CFG_MPC5606S)\r
-                               if(channel <= PWM_NUMBER_OF_EACH_EMIOS-1)\r
+                               switch(channel)\r
                                {\r
-                           ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_0_GFR_F16_F17 + (channel-16)/2),PWM_ISR_PRIORITY, 0);\r
-                               }\r
-                               else\r
-                               {\r
-                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_1_GFR_F16_F17 + (channel-40)/2),PWM_ISR_PRIORITY, 0);\r
-                               }\r
+                               case 16:\r
+                                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_0_GFR_F16_F17),PWM_ISR_PRIORITY, 0);\r
+                                       break\r
+                               case 17:\r
+                                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_0_GFR_F16_F17),PWM_ISR_PRIORITY, 0);\r
+                           break;\r
+                               case 18:\r
+                                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_0_GFR_F18_F19),PWM_ISR_PRIORITY, 0);\r
+                                       break\r
+                               case 19:\r
+                                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_0_GFR_F18_F19),PWM_ISR_PRIORITY, 0);\r
+                           break;\r
+                               case 20:\r
+                                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_0_GFR_F20_F21),PWM_ISR_PRIORITY, 0);\r
+                                       break\r
+                               case 21:\r
+                                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_0_GFR_F20_F21),PWM_ISR_PRIORITY, 0);\r
+                           break;\r
+                               case 22:\r
+                                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_0_GFR_F22_F23),PWM_ISR_PRIORITY, 0);\r
+                                       break\r
+                               case 23:\r
+                                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_0_GFR_F22_F23),PWM_ISR_PRIORITY, 0);\r
+                           break;\r
+                               case 40:\r
+                                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_1_GFR_F16_F17),PWM_ISR_PRIORITY, 0);\r
+                                       break\r
+                               case 41:\r
+                                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_1_GFR_F16_F17),PWM_ISR_PRIORITY, 0);\r
+                           break;\r
+                               case 42:\r
+                                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_1_GFR_F18_F19),PWM_ISR_PRIORITY, 0);\r
+                                       break\r
+                               case 43:\r
+                                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_1_GFR_F18_F19),PWM_ISR_PRIORITY, 0);\r
+                           break;\r
+                               case 44:\r
+                                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_1_GFR_F20_F21),PWM_ISR_PRIORITY, 0);\r
+                                       break\r
+                               case 45:\r
+                                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_1_GFR_F20_F21),PWM_ISR_PRIORITY, 0);\r
+                           break;\r
+                               case 46:\r
+                                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_1_GFR_F22_F23),PWM_ISR_PRIORITY, 0);\r
+                                       break\r
+                               case 47:\r
+                                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMIOS_1_GFR_F22_F23),PWM_ISR_PRIORITY, 0);\r
+                           break;\r
                        #else\r
-               ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMISOS200_FLAG_F0 + channel),PWM_ISR_PRIORITY, 0);\r
+                               switch(channel)\r
+                               {\r
+                               case 0:\r
+                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMISOS200_FLAG_F0),PWM_ISR_PRIORITY, 0);\r
+                                       break;\r
+                               case 1:\r
+                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMISOS200_FLAG_F1),PWM_ISR_PRIORITY, 0);\r
+                                       break;\r
+                               case 2:\r
+                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMISOS200_FLAG_F2),PWM_ISR_PRIORITY, 0);\r
+                                       break;\r
+                               case 3:\r
+                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMISOS200_FLAG_F3),PWM_ISR_PRIORITY, 0);\r
+                                       break;\r
+                               case 4:\r
+                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMISOS200_FLAG_F4),PWM_ISR_PRIORITY, 0);\r
+                                       break;\r
+                               case 5:\r
+                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMISOS200_FLAG_F5),PWM_ISR_PRIORITY, 0);\r
+                                       break;\r
+                               case 6:\r
+                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMISOS200_FLAG_F6),PWM_ISR_PRIORITY, 0);\r
+                                       break;\r
+                               case 7:\r
+                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMISOS200_FLAG_F7),PWM_ISR_PRIORITY, 0);\r
+                                       break;\r
+                               case 8:\r
+                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMISOS200_FLAG_F8),PWM_ISR_PRIORITY, 0);\r
+                                       break;\r
+                               case 9:\r
+                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMISOS200_FLAG_F9),PWM_ISR_PRIORITY, 0);\r
+                                       break;\r
+                               case 10:\r
+                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMISOS200_FLAG_F10),PWM_ISR_PRIORITY, 0);\r
+                                       break;\r
+                               case 11:\r
+                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMISOS200_FLAG_F11),PWM_ISR_PRIORITY, 0);\r
+                                       break;\r
+                               case 12:\r
+                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMISOS200_FLAG_F12),PWM_ISR_PRIORITY, 0);\r
+                                       break;\r
+                               case 13:\r
+                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMISOS200_FLAG_F13),PWM_ISR_PRIORITY, 0);\r
+                                       break;\r
+                               case 14:\r
+                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMISOS200_FLAG_F14),PWM_ISR_PRIORITY, 0);\r
+                                       break;\r
+                               case 15:\r
+                       ISR_INSTALL_ISR2("PwmIsr", Pwm_Isr, (IrqType)(EMISOS200_FLAG_F15),PWM_ISR_PRIORITY, 0);\r
+                                       break;\r
+                               default:\r
+                                       break;\r
+                           }\r
                #endif\r
 \r
             ChannelRuntimeStruct[channel].NotificationRoutine\r
@@ -325,7 +419,7 @@ void Pwm_Init(const Pwm_ConfigType* ConfigPtr) {
     }\r
 }\r
 \r
-#if PWM_DEINIT_API==STD_ON\r
+#if PWM_DE_INIT_API==STD_ON\r
 \r
 // TODO: Test that this function in fact turns the channel off.\r
 void inline Pwm_DeInitChannel(Pwm_ChannelType Channel) {\r
@@ -393,7 +487,7 @@ void Pwm_DeInit() {
  * PWM083: The function Pwm_SetPeriodAndDuty shall be pre compile time\r
  * changeable ON/OFF by the configuration parameter PwmSetPeriodAndDuty.\r
  */\r
-#if PWM_SET_PERIOD_AND_DUTY==STD_ON\r
+#if PWM_SET_PERIOD_AND_DUTY_API==STD_ON\r
        void Pwm_SetPeriodAndDuty(Pwm_ChannelType Channel, Pwm_PeriodType Period,\r
                        Pwm_DutyCycleType DutyCycle) {\r
 \r
@@ -448,8 +542,7 @@ void Pwm_DeInit() {
  * @param Channel PWM channel to use. 0 <= Channel < PWM_NUMBER_OF_CHANNELS <= 16\r
  * @param DutyCycle 0 <= DutyCycle <= 0x8000\r
  */\r
-#if PWM_SET_DUTYCYCLE==STD_ON\r
-\r
+#if PWM_SET_DUTY_CYCLE_API==STD_ON\r
 void Pwm_SetDutyCycle(Pwm_ChannelType Channel, Pwm_DutyCycleType DutyCycle)\r
 {\r
        if ((E_OK != Pwm_ValidateInitialized(PWM_SETDUTYCYCLE_ID)) ||\r
@@ -497,7 +590,7 @@ void Pwm_SetDutyCycle(Pwm_ChannelType Channel, Pwm_DutyCycleType DutyCycle)
 }\r
 #endif\r
 \r
-#if  PWM_SET_OUTPUT_TO_IDLE == STD_ON\r
+#if  PWM_SET_OUTPUT_TO_IDLE_API == STD_ON\r
        void Pwm_SetOutputToIdle(Pwm_ChannelType Channel)\r
        {\r
                if ((E_OK != Pwm_ValidateInitialized(PWM_SETOUTPUTTOIDLE_ID)) ||\r
@@ -540,7 +633,7 @@ void Pwm_SetDutyCycle(Pwm_ChannelType Channel, Pwm_DutyCycleType DutyCycle)
  * PWM085: The function Pwm_GetOutputState shall be pre compile configurable\r
  * ON/OFF by the configuration parameter PwmGetOutputState\r
  */\r
-#if PWM_GET_OUTPUT_STATE==STD_ON\r
+#if PWM_GET_OUTPUT_STATE_API==STD_ON\r
        /*\r
         * PWM022: The function Pwm_GetOutputState shall read the internal state\r
         * of the PWM output signal and return it.\r