mega16下载程序后只能运行一次,复位或者重新上电就不行了
本帖最后由 ashaohlt 于 2013-5-3 19:57 编辑如题。
测试程序是使用SPI接口,下载时可以在CLK脚测到正常的时钟信号,程序写进去后,按键复位,CLK恒为低电平,多次复位依然。重新上电变成恒为高电平,复位后边低电平,在重新上电,又变为高电平,就一直不能正常工作了。
如果不用SPI,直接把PB口当普通IO输出方波可以正常。
测试代码如下(编译器winavr):
#include<avr/io.h>
#include<util/delay.h>
#define DD_MOSI PB5
#define DD_SCK PB7
#define DDR_SPI DDRB
#define SS PB4
int main (void)
{
DDR_SPI = (1<<DD_MOSI) | (1<<DD_SCK) | (1<<SS);
SPCR = (1<<SPE) | (1 << CPOL) | (1<<MSTR) | (1<<SPR0);
SPDR = 0xAA;
while(!(SPSR & (1<<SPIF)));
while (1);
}
很短的代码,大家看看,知道怎么回事不?谢谢了~ SPI 的硬件模組工作在master模式時,ss腳位(portx.4)需設置成輪出. 你是用萬用表測量的CLK引腳的電平吧? NemoGu 发表于 2013-5-3 17:15 static/image/common/back.gif
你是用萬用表測量的CLK引腳的電平吧?
用示波器测的 ashaohlt 发表于 2013-5-3 19:12 static/image/common/back.gif
用示波器测的
從程序上看,MCU復位后SPI接口只向外發送了一字節的0xAA
比較懷疑是不是示波器沒有抓到波形
可以考慮使用Reset信號作為觸發信號,來觀察CLK信號,一般示波器都是雙通道 NemoGu 发表于 2013-5-3 19:19 static/image/common/back.gif
從程序上看,MCU復位后SPI接口只向外發送了一字節的0xAA
比較懷疑是不是示波器沒有抓到波形
示波器捕捉没问题的,因为正常的时候是可以看到的,还可以同步的得到数据线的信号。
页:
[1]