DSPTMS320F28335音乐播放器(定时器中断)
生活随笔
收集整理的這篇文章主要介紹了
DSPTMS320F28335音乐播放器(定时器中断)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
此程序由江科大51代碼改編而來,他講的很詳細(xì),有需要的建議去看。我就直接附代碼了。不懂的評論區(qū)見。
main.c中部分代碼,while里的配置
void main() {InitSysCtrl();//初始化PIE控制寄存器和PIE中斷向量表InitPieCtrl();IER = 0x0000;IFR = 0x0000;InitPieVectTable();LED_Init();Beep_Init();while (1){if (Music[pai] != 0xFF){TIM1_Init(150, (zhouqi[Music[pai]])/2);pai++;DELAY_MS(Music[pai]*125);pai++;CpuTimer1Regs.TCR.bit.TSS=1;DELAY_MS(5);CpuTimer1Regs.TCR.bit.TSS=0;}else{}}}time.c?
#include "time.h" #include "leds.h"//定時(shí)器1初始化函數(shù) //Freq:CPU時(shí)鐘頻率(150MHz) //Period:定時(shí)周期值,單位us void TIM1_Init(float Freq, float Period) {EALLOW;SysCtrlRegs.PCLKCR3.bit.CPUTIMER1ENCLK = 1; // CPU Timer 0EDIS;//設(shè)置定時(shí)器1的中斷入口地址為中斷向量表的INT13EALLOW;PieVectTable.XINT13 = &TIM1_IRQn;EDIS;//指向定時(shí)器1的寄存器地址CpuTimer1.RegsAddr = &CpuTimer1Regs;//設(shè)置定時(shí)器1的周期寄存器值CpuTimer1Regs.PRD.all = 0xFFFFFFFF;//設(shè)置定時(shí)器預(yù)定標(biāo)計(jì)數(shù)器值為0CpuTimer1Regs.TPR.all = 0;CpuTimer1Regs.TPRH.all = 0;//確保定時(shí)器1為停止?fàn)顟B(tài)CpuTimer1Regs.TCR.bit.TSS = 1;//重載使能CpuTimer1Regs.TCR.bit.TRB = 1;// Reset interrupt counters:CpuTimer1.InterruptCount = 0;ConfigCpuTimer(&CpuTimer1, Freq, Period);//開始定時(shí)器功能CpuTimer1Regs.TCR.bit.TSS=0;//定時(shí)器1直接連到內(nèi)核中斷,無需配置PIEIER |= M_INT13;//使能總中斷EINT;ERTM;}interrupt void TIM1_IRQn(void) {EALLOW;GpioDataRegs.GPATOGGLE.bit.GPIO6=1;//設(shè)置GPIO輸出翻轉(zhuǎn)信號LED2_TOGGLE;PieCtrlRegs.PIEACK.bit.ACK1=1;//清除中斷標(biāo)志EDIS; }上面用到的一些數(shù)組、宏定義,具體參考江科大視頻或私發(fā)
?
總結(jié)
以上是生活随笔為你收集整理的DSPTMS320F28335音乐播放器(定时器中断)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中的unsqueeze()和
- 下一篇: MySQL数据库root密码修改