我已经为下面的闪光灯编写了代码!在CodeVision作为我的第一个程序!!与ATmega16。
但是我无法用极端刻录机对它进行编程.CodeVision将其编译为0错误和0警告。 Extreme刻录机成功加载.hex文件。但是当我点击Read all
按钮时,我无法继续。我看到此报告:powering on => power on failed => can not communicate with target chip
。最后我收到了这条消息:No data read!
我不知道熔丝位的值是什么以及如何正确设置它们。
#include <mega16.h>
#include <delay.h>
void main(void)
{
PORTA=0x00;
DDRA=0x01;
while (1)
{
PORTA.0 = 1;
delay_ms(200);
PORTA.0 = 0;
delay_ms(500);
}
}
答案 0 :(得分:1)
你为什么要“全部阅读”?我认为你的目的是为你的设备编程而不是读出它的记忆。
但你真正的问题是与设备的连接无法正常工作。 查看编程适配器的手册或教程,了解如何使用它。
以下(不完整)列表可能包含最常见的错误:
答案 1 :(得分:1)
看起来您的问题在于ATmega16根本没有通电。请记住,您的程序员专门为目标执行电源,然后您需要自己为其供电。这可能是许多廉价开发板的问题。
虽然您按Read all
而不是Program
或Write
或者您的编程程序会有什么问题很奇怪,但考虑到问题,这个错误会以任何一种方式出现。< / p>
为了确定它是否通电,通常开发板将配备一个电源LED,但如果您没有这种指示,请使用万用表16的VCC和GND引脚上的万用表进行检查。从下图中,您可以看到您可以在引脚10和11处检查这些引脚,但我建议您检查引脚10和31,以避免意外地将它们短路在一起。
如果结果表明您的设备已经上电,那么您需要检查SPI连接,因为AVR是通过SPI端口编程的。如果连接正常,您可以使用逻辑分析仪检查它们是否实际发送数据。如果他们没有发送数据,那么您的实际程序员就会遇到问题
如果事实证明那些是好的和功能性的,那么我敢打赌你的Atmega16有缺陷或伪造。
答案 2 :(得分:1)
问题不在编码/编译过程中。 你得到的错误表明程序员已被识别并且它正在工作,这会给你留下以下可能的问题:
程序员和芯片之间的连接,
之前已经对芯片进行了编程,并且在没有外部晶体的情况下无法运行。
如果可以更改程序员速度,则将其设置为最慢。 &#34; Usbasp有慢速设备编程跳线,检查程序员指南&#34;。
尝试使用不同的芯片。
答案 3 :(得分:1)
新芯片需要慢速编程。在usbasp中有模式可以做到这一点。然后使用新的fusebit设置并用慢速写入它们。然后你就能使用普通的