yyj123 发表于 2008-3-10 10:07:08

不解的CRYSTAL = var

初学bascom ,近日无意中发现一个怪事,不得其解,特请教诸大侠。以下面一个小程序为例
$regfile = "m8def.dat"
$crystal = 1000000
Dim A As Bit
Config Portd = Output
Do
      Portd = Not Portd
      Waitms 500
Loop
End
如$crystal = 1000000则D口的闪灯频率是1Hz,照常理如果改成$crystal = 100000,好象晶振频率下降,每个单

步时间延长,则闪灯频率似乎是要降低,但实际硬件(m8未外接晶振)的现象是明显加快好几倍;反之改

$crystal = 8000000,想着应该加快闪灯,结果是闪灯周期几乎延长了8倍。菜鸟,晕,求救!请指教!!

zhangjun 发表于 2008-3-10 10:44:46

改变"$crystal = 1000000",就是通知编译器芯片的实际运行时钟,但实际上你并没有改变电路中的时钟频率,而且 "Waitms"是软件延时,和时钟频率有直接关系.

highnose 发表于 2008-3-10 11:05:10

楼上正解
这只是通知编译器 根据时钟计算与时间相关的某些中间变量。

yyj123 发表于 2008-3-10 15:22:57

明白了,谢谢二位
页: [1]
查看完整版本: 不解的CRYSTAL = var