
IAR软件可以用来编程控制4个灯亮灭,主要步骤如下:
1确定灯的类型,如LED灯,并确定控制灯的控制器;
2使用IAR编程器连接控制器,并用IAR编写程序,实现对灯的控制;
3定义控制4个灯的控制引脚,为每个灯设置一个引脚;
4在程序中编写程序,实现对4个灯的控制,即对每个灯的引脚进行高低电平控制,以控制灯的亮灭;
5编译程序,下载到控制器,运行程序,实现对4个灯的控制。
虽然是两年前的帖子,我还是回复下。
release和debug运行结果不同,一般是优化的问题。如果写程序的时候没有考虑优化问题,那就把所有的优化去试试。
1 不知道你用的是什么开发板,点灯程序设计中inits、寄存器配置和一些接口初始化(如UART、led)在模板中都有了啊,我用过了两个开发板,LPC2200和MAGIC ARM2410都不用手动添加的,专用模板中都自带的。
2 点灯程序中最重要的是设置GPIO,把相应的引脚设置高低电平就可以点亮了,这你就要看懂开发板自带的硬件电路图了。
3 给你看看我用的开发板点灯程序的设置吧,我的开发板上面有四个灯,实现程序如下:
#include "configh"
// 定义LED控制口 (输出高电平时点亮LED)
#define LED1_CON (1<<11) / GPE11口 /
#define LED2_CON (1<<12) / GPE12口 /
#define LED3_CON (1<<4) / GPH4口 /
#define LED4_CON (1<<6) / GPH6口 /
void DelayNS(uint32 dly)
{
uint32 i;
for(; dly>0; dly--)
for(i=0; i<50000; i++);
}
void LED_DispAllOn(void)//其实你要的灯全部亮只要这一个函数就可以了,这个功能是把,led1、led2、led3、led4对应的GPE11、GPE12、GPE4、GPE6设置为高电平,即点亮灯
{
rGPEDAT = rGPEDAT | (0x03<<11);
rGPHDAT = rGPHDAT | (0x05<<4);
}
void LED_DispAllOff(void)
{
rGPEDAT = rGPEDAT & (~(0x03<<11));
rGPHDAT = rGPHDAT & (~(0x05<<4));
}
void LED_DispNum(uint32 dat)
{
dat = dat & 0x0000000F; // 参数过滤
// 控制LED4、LED3显示(d3、d2位)
if(dat & 0x08) rGPHDAT = rGPHDAT | (0x01<<6);
else rGPHDAT = rGPHDAT & (~(0x01<<6));
if(dat & 0x04) rGPHDAT = rGPHDAT | (0x01<<4);
else rGPHDAT = rGPHDAT & (~(0x01<<4));
// 控制LED2、LED1显示(d1、d0位)
rGPEDAT = (rGPEDAT & (~(0x03<<11))) | ((dat&0x03) << 11);
}
int main(void)
{
int i;
do{
// 初始化I/O
rGPECON = (rGPECON & (~(0x0F<<22))) | (0x05<<22); // rGPECON[25:22] = 0101b,设置GPE11、GPE12为GPIO输出模式
rGPHCON = (rGPHCON & (~(0x33<<8))) | (0x11<<8); // rGPHCON[13:8] = 01xx01b,设置GPH4、GPH6为GPIO输出模式
// LED全闪烁5次
for(i=0; i<5; i++)
{
LED_DispAllOff(); // LED全熄灭
DelayNS(5);
LED_DispAllOn(); // LED全点亮
DelayNS(5);
}
// 控制LED指示0~F的16进制数值
for(i=0; i<16; i++)
{
LED_DispNum(i); // 显示数值i
DelayNS(5);
}
}while(1);
return(0);
}
以上就是关于iar软件编程控制4个灯亮灭全部的内容,包括:iar软件编程控制4个灯亮灭、IAR FOR STM8 做一个简单的LED灯两灭测试,在设置IAR debug 和release模式下分别分别运行,后者不成功。、1.3修改程序并点亮或熄灭指定的LED灯。在IAR开发环境下新建工程、新建文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)