#include <stm8s105s4.h>
#define uchar unsigned char
uchar t;
void init(void) //初始化函数
{
CLK_ICKR|=0x08; // 打开芯片内部的低速振荡器LSI
while((CLK_ICKR&0x10)==0); // 等待振荡器稳定
TIM2_EGR=0X01; //允许产生更新事件
TIM2_PSCR=0X01; //分频,使频率为1MHz
TIM2_ARRH=0XC3; //更新后计数器的值
TIM2_ARRL=0X50;
TIM2_CR1=0X05; //允许定时器工作
TIM2_IER=0X01; //允许更新中断
_asm("rim"); //汇编语句,启动定时器
}
void main()
{
uchar i;
init();
while(1)
{
BEEP_CSR=0x26; //一秒2KHz
while(t>=20&&t<40)
BEEP_CSR=0x2e; //一秒1KHz
while(t>=40&&t<60)
BEEP_CSR=0x3e; //一秒500Hz
while(t>=60&&t<80)
BEEP_CSR&=0xdf; //一秒关闭
if(t>=80)
t=0;
}
}
@far @interrupt void TIM2_UP_IRQHandler (void) //中断函数
{
TIM2_SR1 = 0x00;
t++;
}
各位帮忙看下这个程序哪里出问题了,下载后蜂鸣器不响,中断部分单独测试过,没有问题···
此帖出自
小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
[ 本帖最后由 spence 于 2011-7-23 03:54 编辑 ]
一周热门 更多>