二、两个Timer1、Timer个数
在现在的版本中,只有两个Timer可以用。
machine_timer_conf_t timer_conf[MACHINE_TIMER_NUM];
const machine_timer_obj_t timer0 = {.base = {&machine_timer_type}, .timer_port = TIM6, .timer_irqn = TIM6_IRQn, .timer_id = 0u, .conf = &timer_conf[0]};
const machine_timer_obj_t timer1 = {.base = {&machine_timer_type}, .timer_port = TIM7, .timer_irqn = TIM7_IRQn, .timer_id = 1u, .conf = &timer_conf[1]};
const machine_timer_obj_t * machine_timer_objs[] =
{
&timer0 ,
&timer1 ,
};
在MM32F3277上共有八个TIM模块,其中两个给了Timer, 四个给了PWM,两个给Encoder。
2、测试两个Timer
from machine import Pin,Timer
import utime
import math
led0 = Pin('PB2', mode=Pin.OUT_PUSHPULL)
print("Test Timer.")
def t0_callback(self):
led0(1-led0())
count = 1
def t1_callback(self):
global count
print(math.sin(count*math.pi/100))
count += 1
t0 = Timer(0, mode=Timer.PERIODIC, callback=t0_callback, period=100)
t1 = Timer(1, mode=Timer.PERIODIC, callback=t1_callback, period=500)
while True:
pass
3、测试结果
可以看到两个不同频率间隔的Timer可以独自完成输出文字,闪烁LED等。
|