/ /说明:参与实施汽车语音控制
/ /库:CMacro1016lib
/ / bsrv222SDLlib
/ / sacmv26e。库
/ /组成文件:mainc中
/ / Flashasm,hardwareasm,ISRasm
/ /的hardwareh,s480h,hardwareinc
> / /硬件连接:IOA0 ----- KEY1
/ / IOA1 ----- KEY2
/ / IOA2 ----- KEY3
/ / IOB8 ---- - 远期
/ / IOB9 -----倒车
/ / IOB10 ----左
/ / IOB11 ----右转
/ /保养纪录:2005年-12-12 V10
/ / ===================================== ===================
#包括“s480h”
#包括“bsrsdh”
BR />#定义P_IOA_Data(挥发性无符号整数)0x7000处
#定义P_IOA_Dir(挥发性无符号整数)0x7002
#定义P_IOA_Attrib(挥发性无符号整数)0x7003
#定义P_IOB_Data(挥发性无符号整型)0x7005
#定义P_IOB_Dir(挥发性无符号整数)0x7007
#定义P_IOB_Attrib(挥发性无符号整数)0x7008
#定义P_TimerA_Data(挥发性无符号整数)0x700A
>#定义P_TimerA_Ctrl(挥发性无符号整数)0x700B
#定义P_TimerB_Data(挥发性无符号整数)0x700C
#定义P_TimerB_Ctrl(挥发性无符号整数)0x700D
#定义P_Watchdog_Clear(挥发性无符号整型)0x7012
#定义P_INT_Mask(挥发性无符号整数)0x702D
#定义P_INT_Clear(挥发性无符号整数)0x7011
#定义名_ID量0x100
#定义COMMAND_GO_ID 0x101
#定义COMMAND_BACK_ID 0x102
#定义COMMAND_LEFT_ID #定义COMMAND_RIGHT_ID量0x104
#定义S_NAME 0 / /给我一个名字吧
#定义S_ACT1 1 / /前进
#定义S_ACT2 2 / /倒车,请注意
#定义S_ACT3 3 / /左
#定义S_ACT4 4 / /右转
#定义S_RDY 5 / /是啊
#定义S_AGAIN 6 / /请重复
#定义S_NOVOICE 7 / /没有听到任何声音
#定义S_CMDDIFF 8 / /代码字说啊
#定义S_NOISY 8 / /说什么暗语呀
#定义S_START 9 / /准备开始识别
#定义S_GJG 10 / /诱拐绑架
#定义S_DCZY 11 / /倒车,请注意
的extern unsigned int类型BSR_SDModel [100]; / /外部变量BSR_SDModel [100],读者自带
外部无效F_FlashWrite1Word(unsigned int类型地址,无符号整型值);
外部无效F_FlashErase(无符号整数部门);
无符号整型uiTimeset = 3; / /运行时间定时器,调节参数控制运行时间
无符号整型uiTimecont; / /运行时定时
/ / ================================== ===========================
/ /语法:无效延迟();
/ /功能:延时
/ /参数:无
/ /返回值:无
/ / ================ =============================================
无效延迟()
{
无符号整数I;
就(i = 0; I <0X3FFF,我+ +)
{
P_Watchdog_Clear = 0X0001;
/ / ============================== ===============================
/ /语法:无效PlaySnd(无符号SndIndex,无符号DAC_Channel);
/ /功能:语音播放功能
/ /参数:SndIndex播放语音资源索引号
/ / DAC_Channel播放通道选择
/ /返回值:无
> / / =============================================== ============== 无效PlaySnd(无符号SndIndex,无符号DAC_Channel)
{
BSR_StopRecognizer(); / /停止识别
SACM_S480_Initial(1); / /初始化为自动
SACM_S480_Play玩(SndIndex,DAC_Channel,3); / /开始播放语音
同时(!(SACM_S480_Status()&0X0001)= 0)/ /如果播放完毕?
SACM_S480_ServiceLoop(); / /解码,并填补了队列
P_Watchdog_Clear = 0X0001; / /清除看门狗
}
SACM_S480_Stop(); / /停止播放
BSR_InitRecognizer(BSR_MIC); / /初始化识别器
}
/ / ============================== ===============================
/ /语法:INT TrainWord(INT的wordID,诠释SndID);
/ /功能:训练命令
/ /参数:
/ / SndID命令语气指数
/ /返回值的wordID指令编码:无
/ / ================================================= ============
整数TrainWord(无符号整数的wordID,无符号整型SndID)
{
int结果;
PlaySnd(SndID,3); / /导游培训,打相应的动作
指令,而(1)
{
结果= BSR_Train(的wordID,BSR_TRAIN_TWICE); / /训练两次,得到训练成绩
如果(结果== 0)打破;
开关(结果)
{
案例-1:/ /未检测到声音
PlaySnd(S_NOVOICE,3);
返回-1;
案例-2:/ /要培养第二
PlaySnd(S_AGAIN,3);
突破;
案例-3:/ /环境嘈杂
PlaySnd(S_NOISY,3);
返回-3;
案例-4:/ /数据库全
回报-4;
情况-5:/ /检测声音不同
PlaySnd(S_CMDDIFF,3);
返回-5;
情况-6:/ /错误号
回报-6;
默认:
突破;
返回0;
/ / =================================== ==========================
/ /语法:无效TrainSD();
/ /功能:训练功能
/ /参数:无
/ /返回值:无
/ / =============== ==============================================
无效TrainSD()
{
同时(TrainWord(名_ID,S_NAME)= 0!); / /培训名称
而(TrainWord(COMMAND_GO_ID,S_ACT1)= 0);! / /训练第1节动作
同时(TrainWord(COMMAND_BACK_ID,S_ACT2)= 0);! / /培训前两个动作
同时(TrainWord(COMMAND_LEFT_ID,S_ACT3)= 0!); / /训练第3节动作
同时(TrainWord(COMMAND_RIGHT_ID,S_ACT4)= 0!); / /培训4的动作
}
/ / ============================= ================================
/ /语法:无效StoreSD();
/ /实现功能:存储语音模型功能
/ /参数:无
/ /返回值:无
/ / ============ ================================================= BR />无效StoreSD() {unsigned int类型ulAddr,我,命令号,g_Ret;
F_FlashWrite1Word(0xef00,加上0xAAAA);
F_FlashErase(0xe000);
F_FlashErase(0xe100);
F_FlashErase(0xe200);
ulAddr = 0xe000 ;/ /
为(命令号= 0x100的;命令号<0x105;命令号+ +)
{
g_Ret = BSR_ExportSDWord(命令号);
而(g_Ret! = 0)/ /导出模型成功?
g_Ret = BSR_ExportSDWord(命令号);
就(i = 0; I <100; i + +)/ /保存语音模型SD1(0xe000 --- 0xe063)
{
F_FlashWrite1Word(ulAddr,BSR_SDModel [I]) ;
ulAddr + = 1;
/ / ========================= ====================================
/ /语法:无效StoreSD();
/ /功能:承载语音模型函数
/ /参数:无
/ /返回值:无 / / ============= ================================================ 无效LoadSD()
{unsigned int类型 P,K,JK,惩戒,g_Ret;
P =(INT )0xe000;
为(JK = 0; JK <5; JK + +)
{
为(K = 0,K <100,K +)
{
RET = P;
BSR_SDModel [K] = RET; / /加载语音模型
P + = 1;
g_Ret = BSR_ImportSDWord();
而(g_Ret! = 0)/ /加载成功的模式?
g_Ret = BSR_ImportSDWord();
/ / ============================== ===============================
/ /语法:无效的GoAhead();
/ /功能:正向功能
/ /参数:无
/ /返回值:无
/ / =============== ==============================================
无效的GoAhead()/ /向前
PlaySnd(S_ACT1,3); / /提示
P_IOB_Data = 0X0100; / /前进
P_INT_Mask | = 0X0004; / /以下为中断定时器 *** 作
__ asm的(“INT FIQ,IRQ”);
uiTimecont = 0;
/ / ======================================= ======================
/ /语法:无效的备份();
/ /功能:返回函数
/ /参数:无
/ /返回值:无
/ / =============== ==============================================
无效的备份()/ /向后
PlaySnd(S_DCZY,3); / /提示 P_IOB_Data = 0x0200; / /向后
P_INT_Mask | = 0X0004; / /以下为中断定时器 *** 作
__ asm的(“INT FIQ,IRQ”);
uiTimecont = 0;
/ / =================================== ==========================
/ /语法:无效TurnLeft();
/ /功能:打开左侧的功能
/ /参数:无
/ /返回值:无
/ / ============== ===============================================
>无效TurnLeft()/ /左转
PlaySnd(S_GJG,3);
P_IOB_Data = 0x0900; / /右转
延迟(); / /延迟
P_IOB_Data =成0x0500; / /左转
P_INT_Mask | = 0X0004; / /以下为中断定时器 *** 作
__ asm的(“INT FIQ,IRQ”);
uiTimecont = 0;
/ / ======================================= ======================
/ /语法:无效TurnRight();
/ /功能:右转子程序
/ /参数:无
/ /返回值:无
/ / ============== ===============================================
>无效TurnRight()/ /右转
PlaySnd(S_GJG,3); / /语音提示
P_IOB_Data =成0x0500; / /左转
延迟(); / /延迟
P_IOB_Data = 0x0900; / /右转
P_INT_Mask | = 0X0004; / /以下为中断定时器 *** 作
__ asm的(“INT FIQ,IRQ”);
uiTimecont = 0;
/ / =================================== ==========================
/ /语法:无效停止();
/ /功能:停车功能
/ /参数:无
/ /返回值:无
/ / =============== ==============================================
无效停止()/ /停止
{
P_IOB_Data值= 0x0000; / /停车
PlaySnd(S_RDY,3); / /语音提示
}
/ / =============================== ==============================
/ /语法:BSR无效(无效);
/ /功能:识别功能
/ /参数:无
/ /返回值:无
/ / =============== ==============================================
BSR无效(无效)
{
int结果; / /识别结果存储
结果= BSR_GetResult(); / /得到识别结果
如果(结果> 0)/ /语音触发?
P_IOB_Data值= 0x0000; / /临时停车
开关(结果)
{
案名_ID:/ /识别命令
停止(名称); / /停机位
突破;
情况COMMAND_GO_ID:/ /找出第一个命令
的GoAhead(); / /执行一个动作:直
突破; 案例COMMAND_BACK_ID:/ /找出第二个命令
备份(); / /执行动作二:倒车
突破;
情况COMMAND_LEFT_ID:/ /找出第三个命令
TurnLeft(); / /执行三个动作:向左转
突破;
情况COMMAND_RIGHT_ID:/ /找出第四个命令
TurnRight(); / /执行动作四:右转
突破;
默认:
突破;
/ / ============================= ================================
/ /语法:IRQ5无效(无效);
/ /功能:中断服务子程序
/ /参数:无
/ /返回值:无
/ / ============== ===============================================
> IRQ5无效(无效)的__attribute__((ISR)); / /运动定时控制
IRQ5无效(无效)
{
如果(uiTimecont + + == uiTimeset)
{
P_IOB_Data值= 0x0000;
P_INT_Clear = 0X0004;
/ / =================================== ==========================
/ /语法:INT主要(无效);
/ /功能:主要功能
/ /参数:无
/ /返回值:无
/ / ============== ===============================================
>国际主要(无效)
{unsigned int类型BS_Flag; / /火车标志
P_IOA_Dir =为0xFF00; / /初始化IOA,IOA07下拉输入
P_IOA_Attrib =为0xFF00;
P_IOA_Data值= 0x0000;
P_IOB_Dir = 0x0f00; / /初始化IOB,IOB811与输出
P_IOB_Attrib = 0x0f00;
P_IOB_Data值= 0x0000;
BSR_DeleteSDGroup(0); / /初始化存储器RAM
BS_Flag = (unsigned int类型)0xe000; / /读取内存单元0xe000
如果(BS_Flag == 0xFFFF的)/ /没有受过训练(0xe000内容0xFFFF的)
{
TrainSD(); / /培训
StoreSD(); / /存储的训练结果(语音模式)
其他/ /训练(0xe000内容0x0055)
{
LoadSD(); / /语音识别模型加载
}
PlaySnd(S_START,3); / /开始识别
BSR_InitRecognizer(BSR_MIC)提示; / /初始化识别器
同时(1)
{
BSR();
如果(( P_IOA_Data)&0X0004)/ /如果再培训
{
F_FlashErase(0xe000);
而(1);
/ / ========================= ===================================
/ /文件名:flashasm
> / /实现功能:SPCE061 32K闪存读卡器
/ /保养纪录:2003-6-9 V1 0
/ / ================= ===========================================
>。 INCLUDE hardwareinc
。 DEFINE C_FLASH_SIZE为0x8000
。 DEFINE C_FLASH_BLOCK_SIZE量0x100
。 DEFINE C_FLASH_MATCH加上0xAAAA
。 DEFINE C_FLASH_PAGE_ERASE 0x5511 / /擦除一个
。 DEFINE C_FLASH_MASS_ERASE 0x5522 / /
。 DEFINE C_FLASH_1WORD_PGM 0x5533 / /写一个字
。 DEFINE C_FLASH_SEQUENT_PGM 0x5544 / /写多个字
。 DEFINE C_FLASH_MAIN_BLOCK为0x5555
。 DEFINE C_FLASH_INFORM_BLOCK 0x5566
。代码
/ / =========================================== ================================================= BR /> / /语法:无效F_FlashWrite1Word(INT地址,int值)
/ /描述:写一个字到FLASH
/ /参数:要写入的地址内存中的数据写入值地址数据
/ /返回:无
/ / ================================== ================================================== ===========
。公众_F_FlashWrite1Word
DEFINE P_Flash_Ctrl 0x7555
_F_FlashWrite1Word: PROC
推基点至[SP]
BP = SP +1
R1 = C_FLASH_MATCH / / AAAA
> [P_Flash_Ctrl] = R1
R1 = C_FLASH_1WORD_PGM / / 5533
[P_Flash_Ctrl] = R1
R1 = [BP +4] / / flash地址
R2 = [BP + 4 ] / /数据
[R1 = R2
流行BP从[SP]
。 ENDP
/ / ======================================= ================================================== ====
/ /语法:F_FlashWrite(INT部门,诠释及次数,int的大小)
/ /说明:顺序写更多的字
/ /参数:扇区是起始地址将数据写入写入和NUM-大小的写入数据数
/ /返回的数据:无
/ / ================== ================================================== =========================
公众_F_FlashWrite
_F_FlashWrite: PROC
推基点至[SP]
BP = SP +1
R1 = [BP +4] / / flash基地址
R2 =
/数据/> R3 = [BP +5] / /多字节
R4 = C_FLASH_MATCH / / AAAA
[P_Flash_Ctrl] = R4
L_FlashWriteLoop:
R4 = C_FLASH_SEQUENT_PGM / / 5544
[P_Flash_Ctrl] = R4 R4 = [R2 +]
[R1 + +] = R4
R3 - = 1
JNZ L_FlashWriteLoop
[P_Flash_Ctrl] = R3 / /写从最终
d出基点[SP]
RETF 。 ENDP
/ / ======================================= ================================================== ===
/ /语法:无效F_FlashErase(部门)
/ /说明:擦除256字节
/ /参数:起始地址扇区擦除页
/ /返回:无
/ / ============================================ ================================================ 公共_F_FlashErase
_F_FlashErase: PROC
推基点至[SP]
BP = SP + 1
R1 = C_FLASH_MATCH / / AAAA
[P_Flash_Ctrl] = R1
R1 = C_FLASH_PAGE_ERASE / / 5511
[P_Flash_Ctrl] = R1
R1 = [BP +4] / /擦除一个
[R1] = R1
从[SP]
。 ENDP
。完
/ / ======================================= =====================
/ /文件名:ISRasm
/ /功能:语音播放/识别中断服务
> / /保养纪录:2003-9-9 V10
/ / ============================== ==============================
包括hardwareinc
公共_FIQ;。
外部_BSR_FIQ_Routine
外部F_FIQ_Service_SACM_S480
_FIQ:
推R1,R5为[SP]; / /注册推来保护
R1 = C_FIQ_TMA;
[P_INT_Clear] = R1;
致电_BSR_FIQ_Routine / /语音识别中断服务
致电F_FIQ_Service_SACM_S480; / /语音播放中断服务
流行R1,R5从[SP];
RETI;运动的英文sports读音:英音[sp_:t],美音[sp__(r)t]。
sport嬉戏,玩乐,运动,穿戴,炫耀。缩写自disport,嬉戏,消遣,玩乐,来自dis-,离开,-port,承担,担负,词源同comport,porter后词义限定为体育运动。引申比喻义穿戴,炫耀,即抖擞精神。
sport变化形式:复数:sports;第三人称单数:sports;过去式:sported;过去分词:sported;现在分词:sporting。一站式出国留学攻略 >spot
英 [spɒt] 美 [spɑ:t]
n
地点,场所;斑点,污点;[股票]现货;职位,职务
v
弄上污渍,弄上斑点;污辱,玷污;认出,发现;散步
adj
现场的;现货的;插播的
abbr
satellite positioning and tracking 卫星定位和跟踪
some place,表示“某地,某处”的意思。
place
英[pleɪs]美[pleɪs]
n位置;地点;场所;地方;城镇(或建筑物等);有某用途的建筑(或土地)。
v (小心或有意)放置,安放;使(人)处于某位置;安置;安顿;以某种态度对待(或看待)。
[例句]At that time London was the place to be
那时候伦敦是不可不去的地方。
[其他]第三人称单数:places 复数:places 现在分词:placing 过去式:placed。
词义辨析
room,place,space这一组名词都有空间,地方的意思。
room有两层含义,一为“房间”,是可数名词;二表示人或物体所占的“空间或场所”、处事的“余地”等意思,是不可数名词,可用little,much,no,plenty等词修饰。可构成make room for给...让出地方;take up room占地方;leave room for留出空间给...等短语。
place指人们从事各种活动的“地方,场所,位置”,是可数名词,常用的短语有take one’s place就坐,入席;in place在适当的位置。
space意为“空间”,是不可数名词,表示万物存在之处,太空;作“空隙、空白”解时,是可数名词。
SP是spanking缩写,意为打屁股。SP像一种惩戒方式,做错事被惩罚,惩罚完被安抚,这过程中感情的升华是旁人不能感受到的。不过即使喜欢的话,我们还是不能掉以轻心,忽略了该有的安全性,哪怕只有一点点的可能,也要尽力做好万全的准备,避免任何形式的危险。
sp的定义
sp全文为spank,中文简单明了就是打屁股的意思,而打人的那一方被称之为主,被打的那方则是被。打人的工具选择有很多,想专业一点,可以用皮鞭和皮拍,当然鞭子也是有选择的,之前有讲过,可以根据M的耐痛程度选择,散鞭的疼痛度是最低的,马鞭和蛇鞭的疼痛度就有点偏刑罚。
SP又称训诫文,为满足SP同好们特殊心理的文或小说,题材多样,如父教子,兄教弟,师傅教徒弟。故事背景亦可多样,如黑帮,家族,训练等。小说情节上虐点很多,多为虐身,描摹的情感多为亲情,友情,不重男女之情,但也十分细腻。结局多为HE,或欢喜,或让读者拥有含泪微笑之感。
sp是spank的英文缩写,翻译:用手打;打(小孩的)屁股;一掴。
例句:
1、Be careful if you do not work hard, I'll spank your bottom
你再不好好学习,小心被打屁股。
2、and spank her tomorrow night like I know you can
明晚狠狠地打败她我相信你可以的。
3、Previous studies using parental self reports have estimated that parents spank about 18 times per year
之前研究评估出父母体罚大概为平均每年18次。
4、She could have tried something else, like a time out or she could have simply threatened to spank him
她试试别的方法啊,比如“暂停休息”,或者她可以威胁说要打他。
5、New research finds that parents spank or hit more often and for more mundane reasons than researchers previously thought
但现在新的一项研究表明,更多情况下因为普通事情而掌掴或教训的家长们与之前的推测大相径庭。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)