7 #include <system_def.h>
10 #define ENGINE_PIN_A 7 // pin P0.7
11 #define ENGINE_PIN_B 8 // pin P0.8
13 #define ENGINE_ENA 28 // pin P1.28
14 #define ENGINE_ENB 30 // pin P1.30
15 #define ENGINE_IN2A 25 //27 // pin P1.27
16 #define ENGINE_IN2B 29 // pin P1.29
18 #define PWM_STEP ((CPU_APB_HZ / 20000)/100)
20 //unsigned int engineStep = 0;
22 void engine_A_en(unsigned status)
24 if (status == ENGINE_EN_ON)
25 IO1SET |= (1<<ENGINE_ENA);
27 IO1CLR |= (1<<ENGINE_ENA);
30 void engine_B_en(unsigned status)
32 if (status == ENGINE_EN_ON)
33 IO1SET |= (1<<ENGINE_ENB);
35 IO1CLR |= (1<<ENGINE_ENB);
38 void engine_A_dir(unsigned dir)
40 if (dir == ENGINE_DIR_BW)
41 IO1SET |= (1<<ENGINE_IN2A);
43 IO1CLR |= (1<<ENGINE_IN2A);
47 void engine_B_dir(unsigned dir)
49 if (dir == ENGINE_DIR_BW)
50 IO1SET |= (1<<ENGINE_IN2B);
52 IO1CLR |= (1<<ENGINE_IN2B);
55 void engine_A_pwm(unsigned pwm)
57 if (pwm>100) pwm = 100;
58 PWMMR2 = PWM_STEP * pwm;
59 PWMLER |= PWMLER_LA2_m;
63 void engine_B_pwm(unsigned pwm)
65 if (pwm>100) pwm = 100;
66 PWMMR4 = PWM_STEP * pwm;
67 PWMLER |= PWMLER_LA4_m;
73 PINSEL0 &= ~((PINSEL_3 << 14) );
74 PINSEL0 |= (PINSEL_2 << 14) ;
76 IO0DIR |= (1<<ENGINE_PIN_A);
77 IO1DIR |= (1<<ENGINE_ENA) | (1<<ENGINE_IN2A);
78 IO1SET |= (1<<ENGINE_ENA) | (1<<ENGINE_IN2A);
82 PWMMR0 = CPU_APB_HZ / 20000;
86 PWMMR2 =0; // PWM_STEP * 30 ;
87 //PWMMR4 = PWM_STEP * 30 ;
91 PWMPCR |= PWMPCR_PWMENA2_m;
92 PWMLER |= PWMLER_LA0_m | PWMLER_LA2_m;
93 PWMMCR |= PWMMCR_PWMMR0R_m;
94 PWMTCR |= PWMTCR_CE_m | PWMTCR_EN_m;
99 PINSEL0 &= ~((PINSEL_3 << 16));
100 PINSEL0 |= (PINSEL_2 << 16);
102 IO0DIR |= (1<<ENGINE_PIN_B);
103 IO1DIR |= (1<<ENGINE_ENB) | (1<<ENGINE_IN2B);
105 IO1SET |= (1<<ENGINE_ENB) | (1<<ENGINE_IN2B);
109 PWMMR0 = CPU_APB_HZ / 20000;
113 //PWMMR2 = PWM_STEP * 30 ;
114 PWMMR4 = 0;// PWM_STEP * 30 ;
118 PWMPCR |= PWMPCR_PWMENA4_m;
119 PWMLER |= PWMLER_LA0_m | PWMLER_LA4_m;
120 PWMMCR |= PWMMCR_PWMMR0R_m;
121 PWMTCR |= PWMTCR_CE_m | PWMTCR_EN_m;
129 ((uint32_t*)&VICVectAddr0)[rx_isr_vect] = (unsigned long)tc1; // Nastaveni adresy vektotu preruseni
130 ((uint32_t*)&VICVectCntl0)[rx_isr_vect] = 0x20 | 0x5; // vyber casovece pro preruseni
131 VICIntEnable = (1<<5); // Povoli obsluhu preruseni*/