把定時器2作為串口波特率來接收藍牙數據,定時器1用來PWM調速,藍牙發送指令之后接收到指令,定時器1進入中斷之后就直接復位了
一開始是能夠接收之后正常執行指令的,多發送幾次之后就會出現這種問題,手動復位之類的也試過,只要出現這個情況之后就會一直這樣子
單片機源程序如下:
- void car_timer_isr() interrupt 3
- {
- TH1 = (T1_VAL) / 256;
- TL1 = (T1_VAL) % 256;
- if(car_pwm_left == 0)
- {
- car_motor_left_forward = 0;
- car_motor_left_backward = 0;
- }else if(car_tick < car_pwm_left)
- {
- if(car_dir_left) //前進
- {
- car_motor_left_forward = 1;
- car_motor_left_backward = 0;
- }else{
- car_motor_left_forward = 0;
- car_motor_left_backward = 1;
- }
- }else{
- car_motor_left_forward = 0;
- car_motor_left_backward = 0;
- }
- if(car_pwm_right == 0)
- {
- car_motor_right_forward = 0;
- car_motor_right_backward = 0;
- }else if(car_tick < car_pwm_right)
- {
- if(car_dir_right)
- {
- car_motor_right_forward = 1;
- car_motor_right_backward = 0;
- }else{
- car_motor_right_forward = 0;
- car_motor_right_backward = 1;
- }
- }else{
- car_motor_right_forward = 0;
- car_motor_right_backward = 0;
- }
- car_tick++;
- if(car_tick >= 10)car_tick = 0;
- }
復制代碼
|