久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
EXYNOS4412音樂盒程序設計
[打印本頁]
作者:
weres
時間:
2019-9-9 21:51
標題:
EXYNOS4412音樂盒程序設計
#include "exynos_4412.h"
void mydelay_ms(int ms);
#define S_CLK 125000
//125KHz
unsigned int sound[15] = {
0x00,
478,426,379,358,319,284,253,
235,213,190,179,159,142,127
};
//音符0~14
//半音符15~29 -> 0~14音頻不變,音長變為二分之一
//連音符30
unsigned char dis[] = {
5,
1+7,30,15+1+7,1+7,3+7,
2+7,30,15+1+7,2+7,3+7,
1+7,30,15+1+7,3+7,5+7,
6+7,30,30,6+7,
5+7,30,15+3+7,3+7,1+7,
2+7,30,15+1+7,2+7,3+7,
1+7,30,15+6,6,5,
1+7,30,30,
0xff
};
unsigned char dis3[] = {
7+1,7+1,
7+5,7+5,
7+6,7+6,
7+5,30,
7+4,7+4,
7+3,7+3,
7+2,7+2,
7+1,30,
7+5,7+5,
7+4,7+4,
7+3,7+3,
7+2,30,
7+5,7+5,
7+4,7+4,
7+3,7+3,
7+2,30,
7+1,7+1,
7+5,7+5,
7+6,7+6,
7+5,30,
7+4,7+4,
7+3,7+3,
7+2,7+2,
7+1,30,
0xff
};
void yin1()
{
unsigned int i;
for(i=0;dis[i] != 0xff;i++)
{
if(dis[i] != 30)
{
if(dis[i] < 15)
{
PWM.TCON = 0;
mydelay_ms(50);
PWM.TCNTB0 = sound[dis[i]];
PWM.TCMPB0 = sound[dis[i]] / 2;
//手動裝載TCNTB0和TCMPB0
PWM.TCON = 2; //0010
//自動裝載模式,啟動定時器0
PWM.TCON = 9; //1001
mydelay_ms(450);
}
else
{
PWM.TCON = 0;
mydelay_ms(50);
PWM.TCNTB0 = sound[dis[i] - 15];
PWM.TCMPB0 = sound[dis[i] - 15] / 2;
//手動裝載TCNTB0和TCMPB0
PWM.TCON = 2; //0010
//自動裝載模式,啟動定時器0
PWM.TCON = 9; //1001
mydelay_ms(200);
}
}
else
{
mydelay_ms(500);
}
}
}
void yin2()
{
unsigned int i;
for(i=0;dis3[i] != 0xff;i++)
{
if(dis3[i] != 30)
{
if(dis3[i] < 15)
{
PWM.TCON = 0;
mydelay_ms(100);
PWM.TCNTB0 = sound[dis3[i]];
PWM.TCMPB0 = sound[dis3[i]] / 2;
//手動裝載TCNTB0和TCMPB0
PWM.TCON = 2; //0010
//自動裝載模式,啟動定時器0
PWM.TCON = 9; //1001
mydelay_ms(900);
}
else
{
PWM.TCON = 0;
mydelay_ms(100);
PWM.TCNTB0 = sound[dis3[i] - 15];
PWM.TCMPB0 = sound[dis3[i] - 15] / 2;
//手動裝載TCNTB0和TCMPB0
PWM.TCON = 2; //0010
//自動裝載模式,啟動定時器0
PWM.TCON = 9; //1001
mydelay_ms(400);
}
}
else
{
mydelay_ms(1000);
}
}
}
void do_irq()
{
// 獲取中斷號
unsigned int irq_num = CPU0.ICCIAR & 0x3ff;
switch(irq_num)
{
case 57:
GPX2.DAT = GPX2.DAT | (1 << 7);
printf("This interrupt id is %d\n", irq_num);
yin1();
PWM.TCON = 0x8; // 自動重裝
GPX2.DAT = GPX2.DAT & ~(1 << 7);
// PWM.TCON ^= 0x1;
// WDT.WTCON=WDT.WTCON|0x1<<0;
// WDT.WTCON=WDT.WTCON|0x1<<5;
//PWM.TCON = 0x2; // 手動裝載
//PWM.TCON = 0x8; // 自動重裝
EXT_INT41_PEND = 0x1 << 1; // 清pend(置1清0)
ICDICPR.ICDICPR1 = 0x1 << 25; // 清gic
break;
case 58:
GPF3.DAT = GPF3.DAT | (1 << 4);
printf("This interrupt id is %d\n", irq_num);
// GPX2.DAT = GPX2.DAT ^ (0x1 << 7);
yin2();
PWM.TCON = 0x8; // 自動重裝
GPF3.DAT = GPF3.DAT & ~(1 << 4);
EXT_INT41_PEND = 0x1 << 2; // 清pend(置1清0)
ICDICPR.ICDICPR1 = 0x1 << 26; // 清gic
break;
default:
printf("error!\n");
break;
}
// 把處理器中處理完的中斷號返回給gic
// 告訴gic該中斷處理結束,可以送入下一個pending進入
CPU0.ICCEOIR = (CPU0.ICCEOIR & ~(0x3ff)) | irq_num;
}
void peripheral_init()
{
GPX1.CON = 0xff << 4; // 配置GPIO為外部中斷
EXT_INT41_CON = 0x22 << 4; // 下降沿觸發中斷
EXT_INT41_MASK = 0x0; // 使能相應外設
}
void gic_init()
{
ICDISER.ICDISER1 = 0x3 << 25; // 使能按鍵中斷號
ICDIPTR.ICDIPTR14 = 0x0101 << 8; // 選擇cpu接口
ICDDCR = 0x1; // 使能中斷到分配器
CPU0.ICCICR = 0x1; // 把中斷從cpu接口送入處理器
// 屏蔽中斷優先級,255表示所有中斷都允許通過
CPU0.ICCPMR = 0xff;
}
void mydelay_ms(int ms)
{
int i, j;
while(ms--)
{
for (i = 0; i < 5; i++)
for (j = 0; j < 500; j++);
}
}
void wdt_init(){
WDT.WTCON=WDT.WTCON&(~(0xff<<8))|(249<<8);
WDT.WTCON=WDT.WTCON&(~(0x3<<3))|(3<<3);
WDT.WTDAT=10000;
WDT.WTCNT=10000;
}
void pwm_init()
{
GPD0.CON = 0x2; // GPIO配置為TOUT_0
PWM.TCNTB0 = 1000;
PWM.TCMPB0 = 500;
PWM.TCFG0 = 0x63; // 預分頻值為99 -> 100
PWM.TCFG1 = 0x3; // 二級分頻為1/8
PWM.TCON = 0x2; // 手動裝載
PWM.TCON = 0x8; // 自動重裝
}
void led_init()
{
GPX2.CON = GPX2.CON & ~(0xf << 28) | (0x1 << 28);
GPF3.CON = GPF3.CON & ~(0xf << 16) | (0x1 << 16);
GPX2.DAT = GPX2.DAT & ~(1 << 7);
GPF3.DAT = GPF3.DAT & ~(1 << 4);
}
int main()
{
peripheral_init();
gic_init();
pwm_init();
led_init();
int i = 0;
while(1)
{
mydelay_ms(800);
//WDT.WTCNT=30000;
}
return 0;
}
復制代碼
作者:
admin
時間:
2019-9-10 01:56
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩欧美一级片
|
欧美国产亚洲一区二区
|
中文字幕在线看
|
国产一卡二卡三卡
|
欧美日韩网站
|
久久九精品
|
一级黄色录像毛片
|
欧美日韩在线免费
|
另类专区亚洲
|
精品无码久久久久久国产
|
欧美一区视频在线
|
国产精品久久久久一区二区三区
|
亚洲成人av
|
亚洲午夜精品在线观看
|
午夜丰满少妇一级毛片
|
国产精品日日做人人爱
|
久久狠狠
|
波多野结衣一二三区
|
午夜影院污
|
区一区二在线观看
|
亚洲毛片在线
|
农村妇女毛片精品久久久
|
久久国产精品偷
|
欧美亚洲成人网
|
91网在线播放
|
国产免费又黄又爽又刺激蜜月al
|
日本黄色影片在线观看
|
日韩1区2区
|
日韩在线视频观看
|
精品一区二区久久
|
www.日本精品
|
www.激情.com
|
二区中文字幕
|
久久久久久久一区
|
在线免费小视频
|
亚洲欧美精
|
亚洲精品久久久一区二区三区
|
欧美一区二区三区一在线观看
|
h视频免费在线观看
|
欧美一级片免费看
|
国产大毛片
|