- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM8S103 PWM实例(国外英文资料)
STM8S103 PWM实例(国外英文资料)
# include“routine.h”
#定义PS_IO PD_IDR_IDR6
#定义x4000 EEP_ADDRESS_USE_FLAG 0
#定义x4010 EEP_ADDRESS_FRE1 0
#定义x4012 EEP_ADDRESS_WIDTH1 0
#定义x4020 EEP_ADDRESS_FRE2 0
#定义x4022 EEP_ADDRESS_WIDTH2 0
定义beep_on()PA_ODR_ODR3 = 0
定义beep_off()PA_ODR_ODR3 = 1
beep_s sBeep;
#定义BeepType sBeep.chars[0]
无符号字符Time30ms;
unsigned int FrePeriod;
unsigned int PluseW;
无符号字符HeadStata;
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
unsigned int get_dead_time(void)/ /死区时间
{
unsigned int死了;
如果(TIM1_DTR 0 x80)
{
死= TIM1_DTR;
}
else if(TIM1_DTR 0 xc0)
{
死亡=(64 +(TIM1_DTR 0x3f))* 2;
}
else if(TIM1_DTR 0 xe0)
{
死亡=(32 +(TIM1_DTR 0x1f))* 8;
}
其他的
{
死亡=(32 +(TIM1_DTR 0x1f))* 16;
}
返回死了;
}
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
未签名的char get_dead_reg(未签名的int死亡)
{
无符号字符注册;
如果(死 = 512)
{
reg = dead / 16 - 32 + 0xe0;
}
else if(死 = 256)
{
reg = dead / 8 - 32 + 0xc0;
}
else if(死 = 128)
{
reg = dead / 2 - 64 + 0x80;/ / 0x97
}
其他的
{
reg = dead;/ / 0
}
返回注册;
}
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
未签名的int eeprom_read_word(未签名的int地址)
{
unsigned int Dat;
(无符号char *)( dat)= *(无符号字符*)地址;
*((unsigned char *)(dat)+ 1)= *(unsigned char *)(地址+ 1);
返回Dat;
}
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void eeprom_write_word(未签名的int地址,未签名的int数据)
{
FLASH_DUKR = 0机加区;/ /第2硬件密匙。
asm(NOP);
FLASH_DUKR = 0 x56;/ /数据eepm解保护寄存器第1硬件密匙。
asm(NOP);
而(! FLASH_IAPSR_DUL)asm(NOP);/ /硬件置位,解锁标志0写保护使能1写保护通过质量解除。
*(unsigned char *)地址=数据 8;
而(! FLASH_IAPSR_EOP)asm(NOP);/ /判断bgi的事件发生,
FLASH_IAPSR_EOP = 0;/ /软件清0
*(unsigned char *)(地址+ 1)=数据;/ /送数据到地址
而(! FLASH_IAPSR_EOP)asm(NOP);
FLASH_IAPSR_EOP = 0;/ /写或擦出,没有bgi的事件发生,有发生,如IE为1将有中断产生。
FLASH_IAPSR_DUL = 0;/ / 0数据eepm区域写保护使能.1DATA eepm区域写保护使能使用质量密匙解除。
}
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
文档评论(0)