完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
#include #define F_CPU 7372800 // 单片机主频为7.3728MHz,用于延时子程序和计算定时器初始值 #include til/delay.h> #include #include #include //*********************************************************************** // 定义变量区 //*********************************************************************** #define uchar unsigned char #define uint unsigned int #define ulong unsigned long #define Data_IO PORTB //音频输出口 #define Data_DDR DDRB uint t[9]={0,956,865,759,716,638,568,506,470}; uint d[9]={0,105,116,132,140,157,176,198,209}; uchar music[]={5,2,8,2,5,2,4,2,3,2,2,2,1,4,1,2,1,2,2,2,3,2,3,2,1,2,3,2,4,2,5,8}; uchar note_n; uint int_n; uint play_on; //*********************************************************************** // 程序初始化 //*********************************************************************** void system_init() { Data_IO=0x20; //数据口为输出 Data_DDR=0xFF; } //************************************************************************* // 定时器1初始化子程序 //************************************************************************* void timer1_init() //定时器初始化 { TCCR1A=0x40; //定时器工作方式 TCCR1B=0x11; TIFR=0x10; //清中断标志位 TIMSK=0x10; //使能定时器0溢出中断 } //************************************************************************* // 定时器1中断服务子程序 //************************************************************************* ISR(SIG_OUTPUT_COMPARE1A) //中断服务程序 { if(!play_on) //是否播放完 { note_n=0; int_n=1; play_on=1; } else { if(--int_n==0) { TCCR1B=0X10; if(note_n<32) { OCR1A=t[music[note_n]]; int_n=d[music[note_n]]; note_n++; int_n=int_n*music[note_n]; note_n++; TCCR1B=0x11; } else play_on=0; } } //************************************************************************* // 主程序 //************************************************************************* int main(void) { system_init(); //系统初始化 timer1_init(); //定时器0初始化,完成定时器相关配置 SREG|=0x80; //开启全局中断 while(1) { } }
|
|
相关推荐
8个回答
|
|
|
|
|
|
改为void main(void)也不对 通过不了
|
|
|
|
else
{ if(--int_n==0) { TCCR1B=0X10; if(note_n<32) { OCR1A=t[music[note_n]]; int_n=d[music[note_n]]; note_n++; int_n=int_n*music[note_n]; note_n++; TCCR1B=0x11; } else play_on=0; } 是否少了个 “}”。 |
|
|
|
|
|
|
|
|
|
|
|
把错误提醒也贴上去,少给帮助你的人太多猜想空间
|
|
|
|
n109 正解,少个括号
|
|
|
|
二楼 说对了 多谢各位帮忙了
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十五章 摄像头实验
757 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
728 浏览 0 评论
826 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
1459 浏览 0 评论
1208 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12058 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 08:51 , Processed in 0.734099 second(s), Total 88, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号