打印

DSP2812串口设置及中断服务之C++程序

[复制链接]
2597|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2008-5-6 00:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
interrupt void ISRTxUart(void)
{
    if (Uart.SendWritePtr != Uart.SendReadPtr)
    {
        SciaRegs.SCITXBUF = Uart.SendBuffer[Uart.SendReadPtr ++];
        Uart.SendReadPtr &= 0xff;
    }
    Uart.SendBusy = Uart.SendWritePtr != Uart.SendReadPtr;
    SciaRegs.SCIFFTX.bit.TXINTCLR = 1;
    PieCtrlRegs.PIEACK.bit.ACK9 = 1;
}


interrupt void ISRRxUart(void)
{
    Uart.ReceiveBuffer[Uart.ReceiveWritePtr ++] = SciaRegs.SCIRXBUF.all;
    Uart.ReceiveWritePtr &= 0xff;
    SciaRegs.SCIFFRX.bit.RXFFOVRCLR = 1;
    SciaRegs.SCIFFRX.bit.RXFFINTCLR = 1;
    PieCtrlRegs.PIEACK.bit.ACK9 = 1;
}

void UartObj::Init(void)
{
unsigned int i;
    for (i = 0; i < sizeof(ReceiveBuffer); i ++) {
        ReceiveBuffer = 0;
        SendBuffer = 0;
    }
    ReceiveWritePtr = 0;
    ReceiveReadPtr = 0;
    ReceivePosition = 0;
    ReceiveCount = 0;
    SendWritePtr = 0;
    SendReadPtr = 0;
    SendBusy = false;
    State = 0;
        
    EALLOW;
       GpioMuxRegs.GPFMUX.bit.SCITXDA_GPIOF4 = 1;
       GpioMuxRegs.GPFMUX.bit.SCIRXDA_GPIOF5 = 1;
    EDIS;
    /* loopback   8 bit data */
    SciaRegs.SCICCR.all = 0x07;    // 1 bit stop, disable parity, idle mode, 8 bits data 
    
    SciaRegs.SCICTL1.all = 0x03; // enable TX 
    SciaRegs.SCICTL2.all = 0x03; //
    
    SciaRegs.SCIHBAUD = 0;
    SciaRegs.SCILBAUD = 0xf3;//SCI_PRD & 0xff;//0xF3;
    
    SciaRegs.SCICTL1.all = 0x23;
    
//    PieCtrlRegs.PIECRTL.bit.ENPIE = 1;   // Enable the PIE block
    PieCtrlRegs.PIEIER9.bit.INTx1 = 1;
    PieCtrlRegs.PIEIER9.bit.INTx2 = 1;

    /*设置中断服务程序入口地址*/
    EALLOW;    // This is needed to write to EALLOW protected registers
    PieVectTable.TXAINT = &ISRTxUart;
    PieVectTable.RXAINT = &ISRRxUart;
    EDIS;   // This is needed to disable write to EALLOW protected registers

    /*开中断*/
    IER |= M_INT9;
}

//KEY7压键事件处理
void KeyboardObj::Key17(void)
{
       System.BeepOn();
    Lcd.SetDisplayPos(2, 0);//汉字定位到上行左端
    Lcd.Display("KEY7键单击事件!!");
    Uart.puts("KEY7键单击事件");
}

相关帖子

沙发
hotpower|  楼主 | 2008-5-6 19:33 | 只看该作者

哈哈~~~楼上牛人以为DSP是PC机资源丰厚???阁下玩个试试???

使用特权

评论回复
板凳
rivflood| | 2008-5-6 20:03 | 只看该作者

^_^

要把DSP玩出DSP的样子,就要去研究算法!我们多是在应用,不管他DSP还是MCU只要用得好,需要管他像什么样么^_^

使用特权

评论回复
地板
rivflood| | 2008-5-6 20:14 | 只看该作者

to hotpower

不知大虾的串口调试器是网上下载的么?叫啥名字,很不错的说^_^

使用特权

评论回复
5
hotpower|  楼主 | 2008-5-6 23:54 | 只看该作者

哈哈~~~玩DSP肯定要用算法的,但俺也不想浪费了28系列的控制

回楼上: 这是网友汽车电子的串口通V3.20

使用特权

评论回复
6
rivflood| | 2008-5-7 20:36 | 只看该作者

谢过楼上,已下载!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1460

主题

21619

帖子

506

粉丝