查看: 1443|回复: 0

[S12] S12ZVC CAN receive FIFO issue

[复制链接]
  • TA的每日心情
    慵懒
    2021-7-1 11:38
  • 签到天数: 2 天

    [LV.1]初来乍到

    1

    主题

    3

    帖子

    0

    注册会员

    Rank: 2

    积分
    51
    最后登录
    2021-9-6
    发表于 2017-12-13 13:52:29 | 显示全部楼层 |阅读模式
    請問一下,S12 CAN 接收資料有沒有辦法跳過 FIFO 傳輸的方式,直接透過 register 讀取出接收資料, S12ZVC 有五個 FIFO以下是 NXP CAN example ,我透過中斷接收資料,但是外部的 CAN 只丟一次訊號,我該如何即時的透過讀取
    CAN0RXDSR0 讀取到接收到的資料
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //assigns a function to be called when a message is received
    void CAN_set_rx_callback(void (*ptr)(unsigned long, unsigned char[8], unsigned char)){
            rx_callback = ptr;
    }

    #pragma CODE_SEG NON_BANKED
    //CAN message reception interrupt
    void interrupt VectorNumber_Vcan0rx CAN_ISR() {
            //extract CAN frame information
            unsigned long idr;
            unsigned char data[8];
            unsigned char length, i;
           
            //copy ID and DLC
            idr = (CAN0RXIDR0<<21)|((CAN0RXIDR1&0xe0)<<13)|((CAN0RXIDR1&0x7)<<13)|(CAN0RXIDR2<<7)|(CAN0RXIDR3>>1);       
            length = CAN0RXDLR_DLC;
            //copy DATA
            for(i=0; i<length; i++){
                    data[i] = CAN0RXDSR_ARR[i];
            }
            //execute callback
            if(rx_callback!=NULL){
                    rx_callback(idr, data, length);
            }
            CAN0RFLG_RXF = 1;        //clear interrupt flag
    }
    #pragma CODE_SEG DEFAULT


    我知道答案 目前已有0人回答
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-9 02:10 , Processed in 0.110244 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表