在写modbus rtu, 要使用定时器限定每帧数据的时间,现在晶振是1M,波特率9600.3.5t设置在5ms没有问题吧
我找到一个例子如下
void timer0_init()
{
TACCR0 = 132; //时钟是32.768K,那么值设为3.5T = 1/9600*11*32768 = 38*3.5 = 132
TACTL |= TASSEL_2 + ID_3;//设置SMCLK作为定时器时钟源,八分频
TACCTL0 |= CCIE;//设置中断使能
}
我是下面这样修改的,是否正确,大家帮忙看看
void timer0_init()
{
TACCR0 = 4010; //时钟是1M,那么值设为3.5T = 1/9600*11*1000000 = 1146*3.5 = 4010
TACTL |= TASSEL_2 + ID_3;//设置SMCLK作为定时器时钟源,八分频
TACCTL0 |= CCIE;//设置中断使能
}
|