Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //PWM
- uint16_t czestotliwosc=100;
- uint8_t pulse=0;
- volatile uint32_t czas=0;
- enum zmiana{
- UP, DOWN
- }
- zmiana=UP;
- enum option {
- ON, OFF, BLINK, PULSE
- }
- option = ON;
- void set_option(){
- switch(option)
- {
- case OFF:
- TIM3->PSC=(64000000/czestotliwosc*TIM3->ARR+1)-1;
- TIM3->CNT=0;
- TIM3->CCR1=0;
- break;
- case ON:
- TIM3->PSC=(64000000/czestotliwosc*TIM3->ARR+1)-1;
- TIM3->CNT=0;
- TIM3->CCR1=100;
- break;
- case BLINK:
- TIM3->PSC=(64000000/czestotliwosc*TIM3->ARR+1)-1;
- TIM3->CNT=0;
- TIM3->CCR1=pulse;
- break;
- case PULSE:
- TIM3->PSC=(64000000/czestotliwosc*TIM3->ARR+1)-1;
- TIM3->CNT=0;
- TIM3->CCR1=pulse;
- break;
- }
- }
- void HAL_Systick_Callback(){
- czas++;
- if(czas>=1000/czestotliwosc)
- {
- if(option==PULSE)
- {
- czas=0;
- if(zmiana==UP)
- {
- pulse++;
- if(pulse==100) zmiana=DOWN;
- }
- else
- {
- pulse--;
- if(pulse==0) zmiana=UP;
- }
- }
- else if(option==BLINK)
- {
- czas=0;
- if(pulse==0) pulse=100;
- else pulse=0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement