我有这个闪烁LED的代码,问题是我是否正确配置了保险丝,因为当delay_ms为1000时,LED闪烁47秒,47秒灭。我使用CCS C编译器5.059。 谢谢你的建议。
#include <18F4550.h>
#include<stdlib.h>
#include<math.h>
#fuses PLL5,HSPLL,CPUDIV2,USBDIV,NOWDT,NOPROTECT,NOLVP, VREGEN
#use delay(clock=48000000,crystal=20MHz)
//==========================
void main()
{
while(TRUE)
{
output_high(PIN_D0);
delay_ms(1000);
output_low(PIN_D0);
delay_ms(1000);
}
}
答案 0 :(得分:0)
CCS C编译器将根据您传递给#use delay()
的参数设置正确的振荡器保险丝。它还对#use delay()
的参数执行完整性检查,以验证它是否兼容。将您的#fuses
和#use delay()
更改为此,让CCS C编译器为您正确执行此操作:
#fuses NOWDT, NOPROTECT, NOLVP, VREGEN
#use delay(clock=48MHz ,crystal=20MHz, USB_FULL)
我还将USB_FULL
参数放入#use delay()
,它还配置了PLL的其他部分以进行全速USB操作(看起来你想要使用它)。
您会注意到我从您的代码中删除了PLL5,HSPLL,CPUDIV2和USBDIV保险丝,因为这些保险丝将由#use delay()