本帖最后由 zjut_zone 于 2016-10-27 16:29 编辑
你好,谢谢你的解答。代码不重要的,简单的就是采样电压数码管显示,后来没解决没用定时器,已经写好了。一下是测试取整的运算的,注释了取整pb5连接的灯就能秒闪,加进去就不行了。然后刚刚试了下单步运行,取整语句要运行约40秒才运行下一个语句。然后我这个用的是V1(HCC),没有V3的选项。
#include "HT66F003.h"
#define AD_START _start=0;_start=1;_start=0;
unsigned long time;
unsigned char i,j,p,step;
unsigned long y,k,k1;
#pragma vector isr_c [url=home.php?mod=space&uid=72445]@[/url] 0x0c
void isr_c()
{
_stma0f=0;
time++;
k1++;
if(time>=500)
{
time=0;
_pb5=~_pb5;
}
}
void time_init(void)
{
_hlclk=1;
_st0pau=0; //stm计数器暂停控制位,清零运行
_st0ck2=0; //001选择系统时钟fsys
_st0ck1=0;
_st0ck0=1;
_mf0e=1; //多功能中断0控制位,不置1定时器不工作
_mfi0=0x02; //stm比较器A中断控制位
_stm0c0=0x08; //fsys/4
_stm0c1=0xc1; //stm定时器工作模式计数选择,选择比较器A匹配
_stm0al=0xe8;
_stm0ah=0x03; //一次0.5ms
_st0on=1; //stm计数器控制位
}
void main()
{
_wdtc=0xA8; //开始没设置,导致io输出方波,关闭看门狗
_pac=0X0B; //0-输出 1-输入
_pa=0xff; //PA输出高电平
_papu0=1;
_pasr=0x16; //共用引脚设置AN3,AN1
_pbc=0x00; //PB设置输出
_pb5=0;
time_init(); //计数器初始化
_emi=1;
y=10;
k1=0;
time=0;
while(1)
{
// k=y/10;
i++;
}
}
|