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

2008-5-6 00:32 5191 3 3 分类: 处理器与DSP

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键单击事件");
}


点击开大图

文章评论0条评论)

登录后参与讨论
相关推荐阅读
雁塔菜农 2012-04-05 17:51
2012年度新唐Cortex-M0助学开发套件有约束条件赠送申报贴
2012年度新唐Cortex-M0助学套件从4月起每月有约束条件发放16套。 申报人必须是21ic或 EDNC 会员 并具备1月的会龄。 申报时必须注明“遵守约束条件,缴纳250元订金,上...
雁塔菜农 2012-04-05 17:04
2012年度Cortex-M0助学园地推广框图
...
雁塔菜农 2012-04-01 17:59
2012年度Cortex-M0助学园地奖励计划细则
抢楼请点击:菜地公告:即日起创建《菜农Cortex-M0助学园地》(盖楼入口) 每月10号和25号的下午2:50进行2次抢楼,规则同去年12月的疯狂抢楼活动。 奖品由21IC、北航、广州迪圣...
雁塔菜农 2012-02-03 08:19
菜农谋略:搞定牛人宋俊德,对女牛人孙昌旭说:“记住,俺是雁塔菜农~~~ ”
http://www.baidu.com/s?wd=%B2%CB%C5%A9%D0%A6%CC%B8%A1%B6%D0%C2%C0%CB%C3%FB%C8%CB%D0%A7%D3%A6%A1%B7...
我要评论
0
3
1
2
3
4
5
6
7
8
9
0
关闭 热点推荐上一条 /2 下一条