📄 vioceplayv1.c
字号:
/***********************************************************************/
/* */
/* FILE :VIOCEPLAYv1.c */
/* DATE :Fri, Dec 19, 2008 */
/* DESCRIPTION :main program file. */
/* CPU GROUP :2A */
/* */
/* This file is generated by Renesas Project Generator (Ver.4.12). */
/* */
/***********************************************************************/
#include "voiceplay.h"
#include "sfr_r82b.h"
#include "voicewave.h"
void main(void)
{
//内部振荡器--高速
prc0=1;
fra0=3;
prc0=0;
delayus(150);
/*
//振荡器
prc0=1;
cm03=1;
cm1=0x28;
cm05=0;
delayus(150);
ocd2=0;
prc0=0;
*/
nop();
delayus(250);
main_1:
ini_ram(); //RAM初始化,主要写入0外的数据
ini_pp(); //端口及外围功能初始化
for(;;)
{
nop();
emi_p();
main_6:
clr_wdt(); // kicks the dog
com_tr_sub();
if (jsq10ms<80) goto main_6;
jsq10ms=0;
run_ok_ct++;
if (run_ok_ct>=50) //正常运行指示
{
run_ok_ct=0;
run_ok_kx^=1;
}
}
}
//----------------------------------------------------------------------//
//内部RAM初始化程序, //
//从00~1ff全部清0
//----------------------------------------------------------------------//
void ini_ram(void)
{
voice_lt_ct=0;
voice_rt_ct=0;
}
//----------------------------------------------------------------------//
//内部外围功能初始化--为抗干扰, 再处理
//----------------------------------------------------------------------//
void emi_p(void)
{
prc2=1;
pd0=0x00;
pd1=0xfE;
pd2=0xff;
pd3=0xbb;
pd4=0xff;
pd5=0xff;
pd6=0xee;
pd8=0xfe;
}
//----------------------------------------------------------------------//
//内部外围功能初始化 1:out 0:in
//IO口方向/初始值
//P00:AN7 P01:AN6 ...... P07:AN0
//P10:AN8 P11:AN9 P12:AN10 P13:AN11
// D7 D6 D5 D4 D3 D2 D1 D0
//P0: 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 // 0x00/0xff
//P1: 1/1 1/1 RXD0 TXD0 1/1 1/1 1/1 0/1 // 0xfe/0xff
//P2: 1/1 1/1 1/1 1/1 1/1 1/1 1/1 1/1 // 0xff/0xff
//P3: 1/1 0/1 1/1 1/1 1/1 0/1 1/1 1/1 // 0xbb/0xff
//P4: 1/1 1/1 1/1 1/1 1/1 X X X // 0xff/0xff
//P5: X X X 1/1 1/1 1/1 1/1 1/1 // 0xff/0xff
//P6: RXD1 TXD1 1/1 RXD2 TXD2 1/1 1/1 0/1 // 0xee/0xff
//P8: X 1/1 1/1 1/1 1/1 1/1 1/1 0/1 // 0xfe/0xff
//----------------------------------------------------------------------//
void ini_pp(void)
{
//端口
p0=0xff;
p1=0xff;
p2=0xff;
p3=0xff;
p4=0xff;
p5=0xff;
p6=0xff;
p8=0xff;
emi_p();
//定时器--125微秒
tracr = 0; //Timer RA Control Register
traioc = 0; //Timer RA I/O Control Register
traic = 0x01; //Timer RA Interrupt Control Register(Level 1)
tramr = 0; //Timer RA Mode Register(timer mode;count source select f1)
trapre = 20; //Timer RA Prescaler Register
tra = 125; //Timer RA Register
tracr = 0x01; //start counter
/*
// UART2初始化 UART2速度=8000000Hz/16/52=9600bps
//UART2速度=20000000Hz/16/130=9600bps
u2mr=0x05;
u2brg = 130 - 1; // UART2预分频 = 52
u2c0=0x00;
u2c1=0x07;
s2ric = 0x01; //接收中断 1 级
*/
//DAC
da0=0;
da1=0;
dacon=0x03;
//其他
start_wdt();
enable_mint();
}
//----------------------------------------------------------------------//
//----------------------------------------------------------------------//
void start_wdt(void)
{
prc1 =1;
pm12 = 1; // watchdog timer reset
prc1 =0;
wdc7 = 1; // Prescaler select bit: divide by 128
cspro = 0; // Disable count source protect mode
wdts = 1; // Set Wathcdog Timer Start Register
}
//----------------------------------------------------------------------//
//----------------------------------------------------------------------//
void clr_wdt(void)
{
wdtr = 0;
wdtr = 0xFF;
}
//----------------------------------------------------------------------//
//----------------------------------------------------------------------//
void com_tr_sub(void)
{
}
void delay10nop(void)
{
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
}
//----------------------------------------------------------------------//
//延时程序
//----------------------------------------------------------------------//
void delayus(uchar dlt)
{
uchar i;
delayt_1:
if (dlt==0)
{nop();
return;}
dlt--;
for (i=0;i<8;i++)
{
nop();
}
goto delayt_1;
nop();
}
//20M时,正好1毫秒
//----------------------------------------------------------------
void delayms(uchar dlt)
{
uchar i,j;
delayt_1:
if (dlt==0)
{
nop();
return;
}
clr_wdt();
dlt--;
for (i=0;i<100;i++)
{
delay10nop();
delay10nop();
nop();
nop();
}
goto delayt_1;
nop();
}
//----------------------------------------------------------------
//----------------------------------------------------------------
void pPIT_ISR_P (void)
{
uchar ls1,ls2;
uint ls3;
ir_traic=0;
jsq10ms++;
/*
ls1=voice_wlt[voice_lt_ct];
ls1+=0x80;
ls1>>=2;
voice_left_out=ls1;
voice_right_out=ls1;
voice_lt_ct++;
if (voice_lt_ct>=29377) voice_lt_ct=0;
*/
ls1=voice_wrt[voice_rt_ct];
ls1+=0x80;
ls1>>=2;
voice_right_out=ls1;
voice_left_out=ls1;
voice_rt_ct++;
if (voice_rt_ct>=25986) voice_rt_ct=0;
nop();
}
//----------------------------------------------------------------
//----------------------------------------------------------------
void com_recv_bdrf_isrp(void)
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -