微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > 小弟是ARM初学者,想请教诸位大侠一个简单的程序

小弟是ARM初学者,想请教诸位大侠一个简单的程序

时间:10-02 整理:3721RD 点击:
#define  MIO_PIN_07     (* (volatile unsigned int *) 0xF800071C)
/*(slcr)MIO_PIN_07寄存器地址*/
#define  DIRM_0                    (* (volatile unsigned int *) 0xE000A204)
/*DIRM_0寄存器地址*/
#define  OEN_0                    (* (volatile unsigned int *) 0xE000A208)
/*OEN_0寄存器地址*/
#define  DATA_0                    (* (volatile unsigned int *) 0xE000A040)
/*DATA_0寄存器地址*/

#define  WDT_LOAD                    (* (volatile unsigned int *) 0xF8F00620)
/*WDT_LOAD寄存器地址*/
#define  WDT_COUNTER            (* (volatile unsigned int *) 0xF8F00624)
/*WDT_COUNTER寄存器地址*/
#define  WDT_CONTROL            (* (volatile unsigned int *) 0xF8F00628)
/*WDT_CONTROL寄存器地址*/
#define  WDT_RST_STS           (* (volatile unsigned int *) 0xF8F00630)
int main(void)
{
        MIO_PIN_07=0x0FFFFF600;
        /*设置MIO_PIN_07为GPIO*/
         DIRM_0=0x00000080;
         /*设置MIO_PIN_07为输出引脚*/
         OEN_0=0x00000080;
         /*设置MIO_PIN_07输出使能*/
          DATA_0=0x00000080;//MIO_PIN_13=1,点亮LD9
           
        WDT_LOAD=0x13D92D3F;  //设置看门狗定时器载入寄存器
        WDT_COUNTER=0x13D92D3F;  //设置看门狗定时器计数初值,大约1秒
        WDT_CONTROL=0x9;       //设置成看门狗模式,启动定时器
       
          while(1)
         {
         }
        return 0;
}
       这是用ARM看门狗控制一个LED亮灭的程序,该程序的目的在于使用看们狗使LED循环亮灭,但我把程序烧录到开发板中,LED只亮了一下然后就熄灭了,小弟是初学ARM,自己调试了半天也没能实现LEDD 循环亮灭,不得以来论坛发帖。
      请诸位大侠帮小弟看下,这个程序问题出在哪里,应该怎样修改才能实现LED的循环亮灭?

补充内容 (2016-1-23 21:12):
小弟初学,自己纠结了一天了还是没能搞出来,哪位前辈能花点时间帮小弟看一下这个程序,小弟感激不尽!

你只是在程序一开始执行了一次点亮语句,应当在看门狗中断里改变led引脚的输出

你是想让芯片复位,来驱动led吗

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top