资源描述
AD 中断函数( 64US )J换向检测和处理J个通道的电流读取并且清标志位J加载PWMfe空比J退出中断程序总流程关系统总中断J初始化端口J初始化时钟4J初始化 UART1J初始化ADCJ初始化TIMERE1J打开系统总中断J延时 100MSJ读取转把电压J读取角度切换端口,切换角度J判断转把状态J读取峰值,均值电流的基准,并判断是否超出JMOS 管检测从EEROMH卖取锁电机方向标志位,和电流和欠压修改值While(1) 主循环5IO 初始化PA1 :TB 锁电机 内部上拉,外部要加105 的下拉电阻PA2 TA 助力,标准的输入配置PA3 TXD 或 PA3 输出口PB0:输入,峰值电流通道PB1 输入,均值电流通道PB2:输入,电池电压通道PB3:输入,转把电压检测通道PB4:输入,标准的输入端口DC和PB4PB5:输入,标准的输入端口CR巡航PB6:输入或者输出,外部无上拉电阻,有滤波电容PB7:输入或者输出,外部无上拉电阻,有滤波电容PC1 C 下PC2 A 下PC3 A 上PC4:输入或者输出,外部无上拉电阻,有滤波电容,凌祥没有使用到此引脚PC5:刹车,内部上拉PC6 C 上PC7 B 上PE5 : B 下PD0 刹车中断输入SWIMPD1 输出端口,和烧程序的PD2:输入端口 霍尔SAPD3PD4PD5PD6输入端口输入端口输入端口输入端口霍尔 SB霍尔 SCSL ,内部上拉ABS 内部上拉,外部加105 下拉电阻PD7 :输出,LED故障指示1时钟STM8s903HSE Ext.OSCINOSCOUTHSE OSC 1-24MHzEXTCLK OPTSITCSSH8I RC 16 MHZLSI RC128 kHzCKM7:0J1 HSIDlVlkOCh. .hSwitchCPUDIV(2:0MASTEFt阳/16/32LSI ENOPT BIT雄4 /12B/to CPU atxlr Window WatchdogCK周MUSELOPT BITPbrlphoral ClockEnable (S bits)CANDMZO io bcCAN/i,注dock knpurL.on 也USE = High Spwd External clmck signal HSI = High 5陛箕I IntiricJ clock signal LSI = Low Speed Inl&rruil clock signal/RC输出,不分频。16Mhz hsidivi:0CLK_CKDIVR =0x00;/打开低速内部振荡器,高速内部RCCLK ICKR =(13)+(10);GCOSEL3:tito Tim。志 IX SPI ADC AWU CAN UARTfHSI fH&lCiV一 Thse-fL3lT WASTE 曾一 IgpufCPUV2-fcpu;-tcPUl8 一iCPULlt 1Rpu,矍1-国ADC1:时钟8MHZ, 单次扫描模式2:外部触发,右对齐模式3:扫描4 个通道,这个地方有疑问4: 64US 中断一次,但是比刹车中断的优先级低,刹车可以打断AD 转换中断TIMER1TIM1_ARR 寄存器由预装载缓冲器缓冲, PWM 的周期中央对齐模式2。计数器交替地向上和向下计数。配置为输出的通道(TIM1_CCMRx 寄存器中 CCiS =00) 的输出比较中断标志位,只在计数器向上计数时被置 1 。如果UDIS允许产生更新事件,则只有当下列事件发生时才产生更新中断,并UIF置1 :寄存器被更新(计数器上溢/下溢)更新-更新事件被选为触发输入(TRGO)。用来触发ADCCIE, CCINE, CCiP, CCiNP和OCIM位是预装载的; 设置该位后,它们只在设置了 COMG位(TIM1_EGR寄存器) 后被更新。允许刹车中断,并且优先级最高110 : PWM 模式 1 在向上计数时,一旦TIM1_CNTTIM1_CCR1 时通道 1 为无效电平(OC1REF=0) ,否则为有效电平 (OC1REF=1) 。计数器预分频后为8MHZ周期 TIM1_ARR=0XFF ;周期等于256*2/8=64US
展开阅读全文