专栏中心

EEPW首页 > 专栏 > DSP2812串口设置及中断服务之C++程序(转)

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

发布人:beibeidong 时间:2008-05-07 来源:工程师 发布文章
DSP2812串口设置及中断服务之C++程序

 

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[i] = 0;
        SendBuffer[i] = 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键单击事件");
}

点击开大图

 

 

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

Snowflake用新的人工智能解决方案引领汽车的未来

掌握FPGA,软硬都要抓 ——访清华大学孟宪元教授

视频 2012-06-07

AI构建让高性能计算模拟更具挑战性

硬件开源 大势所趋 ——赛灵斯大学计划大中华区经理谢凯年

视频 2012-06-07

量子技术:创新与投资

国际视野 2025-12-15

Cirrus Logic 推出采用创新数字技术的TRIAC调光LED驱动器IC产品

为FPGA铺设“智造”平台 —— 上海皮赛电子有限公司总经理朱哲勇

视频 2012-06-07

让电竞装备更快、更强大

5分钟带你了解供电安全准则 “N - 1” 是什么

MPLAB C18入门

资源下载 2007-02-09

彭斯克的催化剂人工智能推动了舰队智能的新时代

SiFive车规级RISC-V IP获IAR最新版嵌入式开发工具全面支持,加速汽车电子创新

铠侠正式推出EXCERIA PRO G2和EXCERIA G3系列PCIe 5.0消费级SSD

AI数据中心的繁荣可能对其他基础设施项目不利

智能计算 2025-12-15

竞赛应与实际相结合 —— 安富利物流(深圳)有限公司技术市场经理陈志勇博士

视频 2012-06-07

AI在EDA中扮演多个角色

EDA/PCB 2025-12-15
更多 培训课堂
更多 焦点
更多 视频

技术专区