doganup

    1. 正好用到,谢谢提供。
    2. 使用STC15遇到外部中断问题 10/15177 单片机 2014-11-12
      {:1_101:}是我代码没弄好,MCP2515  代码部分没清理干净。造的干扰。中断没问题,使用也正常, 谢谢楼上各位的回贴,非常感谢。:handshake 最近脑代糊涂{:1_142:}
    3. 使用STC15遇到外部中断问题 10/15177 单片机 2014-11-12
      本帖最后由 doganup 于 2014-11-12 19:16 编辑 中断能进入, 但是中断函数内的变量赋值不起作用。{:1_142:}  如果在主循环内加UART发送函数,就能进入中断。
    4. 使用STC15遇到外部中断问题 10/15177 单片机 2014-11-12
      chunyang 发表于 2014-11-12 17:15 在程序中检查中断使能设置,只有准许了中断后才会响应中断。
      中断EA使能的。中断也好用。我逐步屏蔽代码后,发现中断好用。能进入。通过在中断函数内设置其它IO驱动LED,得到中断成功能反馈显示效果。 因此也发现,中断函数内的变量调用,如CAN_Flag设为1。在主函数内的CAN_Flag没有反应。可以描述不准确,就是中断函数内的变量赋值,在main里没有起到作用。
    5. 使用STC15遇到外部中断问题 10/15177 单片机 2014-11-12
      /*---------------------------------------------------------------------*/ /* --- STC MCU Limited ------------------------------------------------*/ /* --- STC15F4K60S4 系列 INT1中断举例----------------------------------*/ /* --- Mobile: (86)13922805190 ----------------------------------------*/ /* --- Fax: 86-755-82905966 -------------------------------------------*/ /* --- Tel: 86-755-82948412 -------------------------------------------*/ /* --- Web: www.STCMCU.com --------------------------------------------*/ /* 如果要在程序中使用此代码,请在程序中注明使用了宏晶科技的资料及程序   */ /* 如果要在文章中应用此代码,请在文章中注明使用了宏晶科技的资料及程序   */ /*---------------------------------------------------------------------*/ //本示例在Keil开发环境下请选择Intel的8058芯片型号进行编译 //假定测试芯片的工作频率为18.432MHz #include "timer.h" #define  NoChangedTime 9 #define DEBUG_TIMER //sbit INT1 = P3^3; extern unsigned char TIM; extern unsigned char CAN_Flag; extern void uartSendString(uint8 * pd);                                        // /******************************************************************************* * 函数名  : Exint1_Init * 描述    : 外部中断1初始化函数 * 输入    : 无 * 输出    : 无 * 返回值  : 无 * 说明    : 无 *******************************************************************************/ void Exint1_Init(void) {         EA = 0;                                 // 暂时关闭中断。         P33 = 1;   //PX1 = 1;                                // 设置外部中断1的中断优先级为高优先级   IT1 = 1;                                 // 设置INT1的中断类型 (1:仅下降沿 0:上升沿和下降沿)   EX1 = 1;                                 // 使能INT1中断   EA = 1;                                  // 使能总中断       } /******************************************************************************* * 函数名  : Exint1_ISR * 描述    : 外部中断1中断服务函数 * 输入    : 无 * 输出    : 无 * 返回值  : 无 * 说明    : 用于检测MCP2515中断引脚的中断信号 *******************************************************************************/ void Exint1_ISR(void) interrupt 2 using 1 {         CAN_Flag = 1;                                        }
    6. 使用STC15遇到外部中断问题 10/15177 单片机 2014-11-12
      我查看过STC15F2K32S 芯片的最下行的最后一个字母是C,应该不是A版的问题。
    7. 使用STC15遇到外部中断问题 10/15177 单片机 2014-11-12
      本帖最后由 doganup 于 2014-11-12 15:40 编辑 void main(void) {         uint8 len, i = 1, j = 0;         // UART初始化。         uartInit();                 uartSendString(" UART init end。\r\n \r\n");                          // SPI初始化,关闭所有片选。InitSpi()         InitSpi();                 uartSendString(" SPI init end。\r\n \r\n")        // 外部中断 1 初始化。        Exint1_Init();         while(1)         {                         if(CAN_Flag)                         {                              uartSendString("into Interrupt. \r\n");        // 2 不然无法进入中断                                        }                         else                         {                                 uartSendString("into Interrupt. \r\n");  //  1 主循环必须有UART发送函数。                         }                 }         }
    8. 使用STC15遇到外部中断问题 10/15177 单片机 2014-11-12
      本帖最后由 doganup 于 2014-11-12 15:30 编辑 /*---------------------------------------------------------------------*/ /* --- STC MCU Limited ------------------------------------------------*/ /* --- STC15F4K60S4 系列 INT1中断举例----------------------------------*/ /* --- Mobile: (86)13922805190 ----------------------------------------*/ /* --- Fax: 86-755-82905966 -------------------------------------------*/ /* --- Tel: 86-755-82948412 -------------------------------------------*/ /* --- Web: www.STCMCU.com --------------------------------------------*/ /* 如果要在程序中使用此代码,请在程序中注明使用了宏晶科技的资料及程序   */ /* 如果要在文章中应用此代码,请在文章中注明使用了宏晶科技的资料及程序   */ /*---------------------------------------------------------------------*/ //本示例在Keil开发环境下请选择Intel的8058芯片型号进行编译 //假定测试芯片的工作频率为18.432MHz #include "timer.h" #define  NoChangedTime 9 #define DEBUG_TIMER //sbit INT1 = P3^3; extern unsigned char TIM; extern unsigned char CAN_Flag; extern void uartSendString(uint8 * pd);                                        // /******************************************************************************* * 函数名  : Exint1_Init * 描述    : 外部中断1初始化函数 * 输入    : 无 * 输出    : 无 * 返回值  : 无 * 说明    : 无 *******************************************************************************/ void Exint1_Init(void) {         EA = 0;                                 // 暂时关闭中断。         P33 = 1;   //PX1 = 1;                                // 设置外部中断1的中断优先级为高优先级   IT1 = 1;                                 // 设置INT1的中断类型 (1:仅下降沿 0:上升沿和下降沿)   EX1 = 1;                                 // 使能INT1中断   EA = 1;                                  // 使能总中断         } /******************************************************************************* * 函数名  : Exint1_ISR * 描述    : 外部中断1中断服务函数 * 输入    : 无 * 输出    : 无 * 返回值  : 无 * 说明    : 用于检测MCP2515中断引脚的中断信号 *******************************************************************************/ void Exint1_ISR(void) interrupt 2 using 1 {         CAN_Flag = 1;                                                                                                                                //CAN接收到数据标志 /*         #ifdef DEBUG_TIMER                         uartSendString("into Interrupt. \r\n");         #endif */ }
    9. 使用STC15遇到外部中断问题 10/15177 单片机 2014-11-12
      /*---------------------------------------------------------------------*/ /* --- STC MCU Limited ------------------------------------------------*/ /* --- STC15F4K60S4 系列 SPI的主模式读写外部串行Flash举例(中断方式)----*/ /* --- Mobile: (86)13922805190 ----------------------------------------*/ /* --- Fax: 86-755-82905966 -------------------------------------------*/ /* --- Tel: 86-755-82948412 -------------------------------------------*/ /* --- Web: www.STCMCU.com --------------------------------------------*/ /* 如果要在程序中使用此代码,请在程序中注明使用了宏晶科技的资料及程序   */ /* 如果要在文章中应用此代码,请在文章中注明使用了宏晶科技的资料及程序   */ /*---------------------------------------------------------------------*/ //本示例在Keil开发环境下请选择Intel的8058芯片型号进行编译 //假定测试芯片的工作频率为18.432MHz //本示例所读写的目标Flash为PM25LV040,本代码已使用U7编程器测试通过 //#include "reg51.h" #include "SPI.H" BOOL g_fSpiBusy;                                                                  //SPI的工作状态 /************************************************ SPI中断服务程序 ************************************************/ void spi_isr() interrupt 9 using 3 {     SPSTAT = SPIF | WCOL;                       //清除SPI状态位     g_fSpiBusy = FALSE; } /************************************************ SPI初始化 入口参数: 无 出口参数: 无 说    明: ************************************************/ void InitSpi() {         EA = 0;                 // 暂时关闭中断。           ACC = P_SW1;                                                                        // 切换到第一组SPI   ACC &= ~(SPI_S0 | SPI_S1);                                                          // SPI_S0=0 SPI_S1=0   P_SW1 = ACC;                                                                        // (P1.2/SS, P1.3/MOSI, P1.4/MISO, P1.5/SCLK) //    ACC = P_SW1;                                                        // 可用于测试U7,U7使用的是第二组SPI控制Flash //    ACC &= ~(SPI_S0 | SPI_S1);                                          // SPI_S0=1 SPI_S1=0 //    ACC |= SPI_S0;                                                              // (P2.4/SS_2, P2.3/MOSI_2, P2.2/MISO_2, P2.1/SCLK_2) //    P_SW1 = ACC;   //  ACC = P_SW1;                                                                // 切换到第三组SPI //  ACC &= ~(SPI_S0 | SPI_S1);                                                  // SPI_S0=0 SPI_S1=1 //  ACC |= SPI_S1;                                                              // (P5.4/SS_3, P4.0/MOSI_3, P4.1/MISO_3, P4.3/SCLK_3) //  P_SW1 = ACC;           SPSTAT = SPIF | WCOL;                                                       // 清除SPI状态         SPI_CS = 1;         SPCTL = 0x00;                                                                                                                                                                // 清除SPI控掉寄存器.         // 设置主机, 使能, 主模式 时钟悬空高 后时种沿采样         // 4分频(SPDHH)  高位先发(DORD)         SPCTL = SSIG | SPEN | MSTR | CPOL | CPHA  ;           //使能SPI传输中断         IE2 |= ESPI;         EA = 1; } /************************************************ 函数名称: 使用SPI方式与Flash进行数据交换 入口参数: dat 准备写入的数据 出口参数: 从Flash中读出的数据 ************************************************/ BYTE SpiShift(BYTE dat) {     g_fSpiBusy = TRUE;     SPDAT = dat;                                //触发SPI发送     while (g_fSpiBusy);                         //等待SPI数据传输完成         return SPDAT; }
    10. 很棒。。。。。就是耗费时间
    11. 万用板的边上的长方形有什么用的 7/2660 聊聊、笑笑、闹闹 2013-08-07
      真不知道,也很好奇
    12. 芯片炸开之后。。。。 32/5238 聊聊、笑笑、闹闹 2013-08-07
      为了成本usb口的抗干扰芯片,没有。 为了省成本usb电源接口没有保险。 节省成本,在碰上器件品质,电脑配件品质,旧砰砰砰
    13. 这样的铝材那里可以采购的到? 14/3695 DIY/开源硬件专区 2013-07-22
      铝型材  阿里巴巴 淘宝
    14. 遥控器DIY详细教程--硬件篇 [iYue出品] 4/5123 DIY/开源硬件专区 2013-07-01
      爪机 ,看不到视频,顶一下
    15. DIY小手电钻 9/4845 DIY/开源硬件专区 2013-04-03
      同心度不好吧?,没有直流调速不方便使用吧?
    16. 跟踪,锁定
    17. 【视频】遥控坦克走障碍 8/4512 DIY/开源硬件专区 2013-04-02
      哈哈,有意思
    18. LQFP引脚短路问题 1/2717 DIY/开源硬件专区 2013-04-02
      电源电压是否匹配。 电路板线路是否正确。 楼下补充其他注意事项
    19. 圆点博士微型四轴飞行器飞行成功 10/4371 DIY/开源硬件专区 2013-02-15
      一只大苍蝇 :lol
    20. 电子时钟万年历 58*170 9/4608 DIY/开源硬件专区 2013-01-05
      亲自动手,遇到问题多方求教,爱看资料,自学必成材

最近访客

< 1/1 >

统计信息

已有331人来访过

  • 芯积分:--
  • 好友:12
  • 主题:7
  • 回复:106

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言