今天打算从STM8S系列转到AVR,用了mega128,居然程序不运行
从PIC转STM8S,结果STM8S太令人失望,电源有很微小的波动都复位,难以用在无线发射控制的场合,于是放弃。今天转到AVR,尝试一个小程序,结果却不运行,太费解了。
板子是正常的,因为写demo程序是运行的,但是我用avr studio 5编译却不运行,就好像死机一样!
哎,求解
单片机是 mega128a ,内部晶体。下面的程序是闪灯,demo程序是闪的 。
#include<avr/io.h>
int main(void)
{
PORTC=0xff;
DDRC=0xff;
while(1)
{
PORTC^=0xff;
_delay_ms(100);
}
}
下面是demo程序,其他单片机熔丝位一样的设置。
/*******************************************
文件:LED.C
环境:编译为ICC AVR6.25A,仿真为AVR Studio4.10
硬件:ATMEGA16芯片
日期:2008年12月10日
功能:采用IO口驱动发光二极管,并实现流水线功能
备注:本系列例程参考了ouravr各位网友提供的相关资料,再此表示感谢
/******************************************/
#include <iom128v.h>
#include <macros.h>
#defineuchar unsigned char
#defineuintunsigned int
//毫秒级延迟程序
void delay(uint ms)
{
uint i,j;
for(i=0;i<ms;i++)
{
for(j=0;j<1141;j++);
}
}
//主控程序
void main()
{
uint k;
DDRC=0XFF;
PORTC=0XFF;
while(1)
{
for(k=0;k<8;k++)//循环闪烁
{
PORTC&=~BIT(k);
delay(50);
PORTC|=BIT(k);
delay(50);
}
}
}
需要设置熔丝不兼容m103 估计你转到哪也是这样 Vmao 发表于 2014-9-6 21:41
估计你转到哪也是这样
对不起,还真是AVR128这个芯片有卡住我,我用过PIC汇编,STM8/STM8S/还用过STM32,都是弄产品,至于这个AVR128我是不懂,我只懂AVR的48和88,总之我不懂128。
对了,如果你太厉害了,请不要看这些这么低级的帖子。大神请绕道 STM8会不会是调压器电容的问题? 以前遇到过,同样的程序,在win7上ICC7.xx的不行; 用xp装ICC AVR6.3的没问题。 laotui 发表于 2014-9-6 22:22
STM8会不会是调压器电容的问题?
不是呢,用示波器看VDD电压,开无线发射时VDD波动几百毫伏,就复位了,工作电压3.3V,用内部晶振。 cyr_hongfeng 发表于 2014-9-6 21:39
需要设置熔丝不兼容m103
谢谢啦!!!! 靠,正用stm8s105k做无线。网上反应stm8问题偏多。
难道你的无线电源和单片机共用一个,做大功率无线发射要单独供电。你如果不隔开,用avr很遗憾的告诉你,avr也有掉电保护,就是电压低于某个值会复位 10楼正解,做大功率无线发射要单独供电 记得avr熔丝位有个bovd低电压设置 找到VDD波动的原因,就应该想办法解决,仅靠换芯片不一定有效 楼主方向搞错了既然 波动几百毫伏,应该解决电压的问题才对 电源问题是关键
页:
[1]