MSP430讨论区
返回
登录/注册
使用Timer_B模拟串口遇到的问题,请各位大虾解答下或提点建议
楼主
eass_li 于 2011-08-30 23:49:07
使用Timer_B模拟串口遇到的问题,请各位大虾解答下或提点建议
[P][BGCOLOR=#3c8dc4][B]TIMER_B模拟串口,在中断接收程序调试中有些疑问,TB内部无锁存器(即无SCCI,仅TIMER_A有),工作于接收模式时输入电平如何获取(CCI???);请高人指教。谢谢!![/B][/BGCOLOR][/P]
回复
1楼
seawind319 于 2011-08-31 10:01:52
[P]模拟串口使用中断口,这样就可以在第一时间判断起始位[/P]
回复
2楼
eass_li 于 2011-08-31 12:28:04
[P]接收已使用中断的(捕获+比较),但因TB无SCCI位,想问下输入电平如何读取呢,使用CCI是否可以?[/P][P]如下附接收/发送中断代码,请各位指点下啊![/P][P] [/P][P]#if __VER__ < 200
interrupt[TIMERB0_VECTOR] void Timer_B (void)
#else
#pragma vector=TIMERB1_VECTOR
__interrupt void TIMERB1_ISR (void)
#endif
{
// RX(接收字节)
if ( TBCCTL2 & CCIFG ) // RX on CCI2A(如果CCI2A是捕获输入引脚)
{
TBCCR2 += Bitime; // Add Offset to CCR2(下一定时时间为1位时间)
if( TBCCTL2 & CAP ) // Capture mode = start bit edge(如果是在捕获模式,则是在等待起始位)
{
TBCCTL2 &= ~ CAP; // Switch from capture to compare mode(得到起始位后改为比较模式)
TBCCR2 += Bitime_5; //定时位置改到位的中间位置(加半个位的时间)
}
else
{
RX_DATA = RX_DATA >> 1; //先收到的是低位
if (TBCCTL2 & CCI) // [B][COLOR=#f70909]TB无SCCI,不知此处是否有问题.[/COLOR][/B][/P][P] RX_DATA |= 0x80; //[/P][P] BitCnt --; // All bits RXed? //位计数减1
if ( BitCnt == 0) //接收完一个字节?
//>>>>>>>>>> Decode of Received Byte Here <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
{
BitCnt = 0x08;
TBCCTL2 &= ~ CCIE; // All bits RXed, disable interrupt(接收完一个字节后禁止中断)
//_BIC_SR_IRQ(LPM2_bits); // Clear LPM3 bits from 0(SR)(准备退出低功耗模式)
}
//>>>>>>>>>> Decode of Received Byte Here <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
}
TBCCTL2 &= ~ CCIFG;
}
// TX(发送字节,在进入发送中断前已经置位OUTMOD0)
else if(TBCCTL1 & CCIFG)
{
TBCCR1 += Bitime; // Add Offset to CCR1(下一定时时间为1位时间)
if ( BitCnt == 0) //所有位发送完成
TBCCTL1 &= ~ CCIE; // All bits TXed, disable interrupt(禁止中断)
else
{
if (TX_DATA & 0x01)
TBCCTL1 &= ~ OUTMOD2; // TX Mark(输出模式OUTMOD0:置位)
else
TBCCTL1 |= OUTMOD2; // TX Space(输出模式OUTMOD2+OUTMOD0:复位)
TX_DATA = TX_DATA >> 1; //低位先发
BitCnt --; //位计数
}
TBCCTL1 &= ~ CCIFG;
}
}
[/P][P] [/P]
回复
3楼
DC 于 2011-08-31 22:52:24
[P]“[B][COLOR=#f70909]TB无SCCI,不知此处是否有问题.[/COLOR][/B]”
非也,TB同样有CCI的;必须的![/P][P]这是一个信号也,也是一个位;你接收到的每位信号是0还是1都得必须读取这位来识别的。[/P][P]嘿嘿~,看看模块结构图吧...[EM04][/P]
回复
4楼
eass_li 于 2011-09-01 18:18:37
[P]多谢DC大哥,已经搞定了呵呵[/P]
回复
1
电脑版
Page created in 0.1719 seconds width 3 queries.