下面这个跑马灯程序我烧到板子上灯都不亮是什么原因
下面这个程序我烧到板子上灯都不亮是什么原因include <iom16.h>
#include <intrinsics.h>
void main( void )
{
unsigned charled[]={0x00,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0x7e,0xe7,0xdb,0xbd,0x7e,0xbd,0xf7,0xef,0xdf,0xbf,0x7f,
0xbf,0xdf,0xef,0xfe,0xfd,0xfb,0xf7,0xfe,0xfc,0xf8,0xf0,0xe0,
0xc0,0x80,0x00,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,0xff};
unsigned char i;
PORTA = 0xFF; // Give PORTB and the User LEDs an initial startvalue
// led = 1; // Start with LED0
DDRA = 0xFF; // Set PORTB as output
while(1) // Eternal loop
{
PORTA = led; // Invert the output since a zero means: LED on
i++;
if(i==45)
i=0;
//led <<= 1; // Move to next LED by performing a rotate left
// if (!led)
// led = 1; // If overflow: start with LED0 again
__delay_cycles(100000);// Wait for 500 000 cycles
}
}
但是改成unsigned charled[]={0x00,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0x7e,0xe7,0xdb,0xbd,0x7e,0xbd,0xf7,0xef,0xdf,0xbf,0x7f,
0xbf,0xdf,0xef,0xfe,0xfd,0xfb};就可以亮了
以下蓝色文字由站长:armok 于:2008-01-05,10:42:48 加入。你的原标题:“<font color=black>跑马灯” 不合符规定。请更改成能说明帖子大意的标题
试想一下,如果本论坛的帖子标题清一色的‘帮助!’,‘ADC求救!’等笼统的标题,你在阅读的过程中会造成许多麻烦。
所以本论坛规定:一定要起一个能说明帖子大意的标题。不允许“关于 AVR 的 ADC 使用!”这种笼统标题。作为标题,必须说明清楚:
①你是在请教问题,还是在介绍有关的知识?
②ADC的问题有许多,你是想说那方面的内容?
注意以上两点,标题应该改成如:“请教:ADC 可以不使用中断吗?”。
起一个能说明帖子大意的标题,除了减轻我们的帖子分类整理工作,还方便其它人阅读,节省大家的时间。
注:使用合格的标题,对你来说只是举手之劳,但却会为我们的管理工作提供很大的便利。谢谢你的支持。
./bbs_upload/files_6/armok01122228.gif 把
unsigned charled[]={0x00,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0x7e,0xe7,0xdb,0xbd,0x7e,0xbd,0xf7,0xef,0xdf,0xbf,0x7f,
0xbf,0xdf,0xef,0xfe,0xfd,0xfb,0xf7,0xfe,0xfc,0xf8,0xf0,0xe0,
0xc0,0x80,0x00,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,0xff};
改为
const unsigned charled[]={0x00,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0x7e,0xe7,0xdb,0xbd,0x7e,0xbd,0xf7,0xef,0xdf,0xbf,0x7f,
0xbf,0xdf,0xef,0xfe,0xfd,0xfb,0xf7,0xfe,0xfc,0xf8,0xf0,0xe0,
0xc0,0x80,0x00,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,0xff};
试试. 呵呵,没有“#include <intrinsics.h> ”文件啊?! 改成这样就能亮了。
#include <mega16.h>
#include<delay.h>
unsigned charled[]={0x00,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0x7e,0xe7,0xdb,0xbd,0x7e,0xbd,0xf7,0xef,0xdf,0xbf,0x7f,
0xbf,0xdf,0xef,0xfe,0xfd,0xfb,0xf7,0xfe,0xfc,0xf8,0xf0,0xe0,
0xc0,0x80,0x00,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,0xff} ;
void main( void )
{
unsigned char i=0;
PORTA = 0xFF;
DDRA = 0xFF;
while(1)
{
PORTA = led;
i++;
if(i==45)
i=0;
delay_ms(500);
}
} i居然不赋初值
编译器没有警告么? 呵呵,牛人一般都很少注意这样的错误的. 跑马灯程序,没初值是个什么情况? PORTA=led;//?
页:
[1]