| 
高级会员 主题
回帖0
积分581
阅读权限30
注册时间2013-11-29
最后登录1970-1-1
在线时间 小时
 
 | 
 
| 吹電扇睡覺又怕一直吹受不了,所以來一個 10段 每段可以ON 10~99分 OFF 10~99分 輸出有三個可以選擇其一 若是把10算都設定完成之後就會寫入 STM8的 EEPROM內 斷電後啟動就自動載入 
 黑晶爐的電路兩片 一片控制 一片驅動
 
 
   
 
 
   
 
 
   
 
 
   
 
 設定0~9段程式
 
   
 
 ON60分
 
   
 
 OFF 10分
 
   
 
 輸出 1
 
   
 
 
   
 
 進行步驟0 St0
 
   
 
 暫停 SP0
 
   
 
 左一 步驟選擇 左二/三 時間加減10分 右一 START 右二 STOP
 4個LED都沒作用,因為功力不足
 
   
 
 
 程式:
 /*
 20140918修改設定值並存入 EEPROM內以防止斷電後需要重新輸入
 應用 FLASH_Unlock(FLASH_MEMTYPE_DATA)
 FLASH_ProgramByte(addr,Data)
 FLASH_ReadByte(addr)
 FLASH_EraseByte(addr)
 FLASH_GetFlagStatus(FLASH_FLAG_EOP)
 
 */
 
 #include "stm8s.h"
 #include "stm8s_flash.h"
 #include "stm8s_tim1.h"
 #include "stm8s_tim5.h"
 #include "stm8s_tim6.h"
 #include "stm8s_adc1.h"
 #include "stm8s_delay.h"
 #include "stm8s_alarm_work.h"
 #include "global_defined.h"
 
 #define S 10
 #define T 11
 #define P 12
 #define D 13
 #define O 14
 #define F 15
 #define BUZZER GPIO_PIN_0
 //---------20140815-----------------
 #define Out0PORT GPIOB
 #define Out1PORT GPIOB
 #define Out2PORT GPIOA
 #define Out3PORT GPIOF
 #define Out0 GPIO_PIN_6  //小TRIAC
 #define Out1 GPIO_PIN_7  //大TRIAC
 #define Out2 GPIO_PIN_2  //大TRIAC
 #define Out3 GPIO_PIN_4  //繼電器
 
 u16 addr=0x4100;
 u8 OperationStatus;
 u8 pcdis[]={0xd6,0x14,0xcc,0x5c,0x1e,0x5a,0xda,0x14,0xde,0x5e,0x52,0xca,0x8e,0x08,0xd8,0x8a};//定義pc port 顯示的值
 u8 pedis[]={0x01,0x00,0x01,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01,0x00,0x00,0x01};//定義pe port 顯示的值對應于7段顯示
 // 增加了stpdop等字段
 /*
 u8 Hundreds,Tens,Units;//顯示百位十位個位
 u16 Display_Data;//
 u8 count6;//timer 6
 u8 display_time;//interrupt for display
 u8 Menu=0;//菜單選擇按鍵
 u8 One_Sec_Flag;
 u8 One_Tenth_Count;//1/10 second
 u8 One_Sec_Count;
 u8 One_Minute_Count;
 u8 One_Tenth_Flag;
 u8 One_Minute_Flag;
 u8 One_Hour_Flag;
 u8 Step_count;//record lamp on/off 次數
 u8 rec_Step_On_Time[10];
 u8 rec_Step_Off_Time[10];
 u8 rec_Out_MOS[10];
 u8 Step_On_Time;//current step of on time
 u8 Step_Off_Time;//current off time
 u8 Out_MOS;//out put port define
 u8 Start_Run_Flag;//start stop clear
 u8 Step_On_Time_finish;//flag
 u8 Step_Off_Time_finish;//flag
 u8 Stop_Run_count=0;//for clear
 u8 Running_Flag=0;//正在倒數
 u8 Display_Change_Flag;//變換顯示步驟與時間
 u8 Display_Change_count;
 u8 Load_Data_flag;//first load data
 u8 Alarm_flag;//alarm use
 u8 Sec_alarm_flag;//alarm use
 u8 Alarm_Time_count=0;//1 minutes
 u8 Finish_flag=0;
 */
 
 /*
 //void delay(unsigned int time);
 void GPIOinit(void);
 void tim1init(void);//匯總 TIM1
 void tim1svc(void);//中斷服務程式 閃爍10倍
 void KeyScan(void);
 void delay(unsigned int time);
 void Display(void);
 void GPIOinit(void);
 void tim1init(void);
 void tim1svc(void);
 void tim6init(void);
 void tim6svc(void);
 void Display_Step (u8 Step_count);//display and load data
 void Display_Kyin_On_Step (void);
 void Display_Kyin_Off_Step (void);
 void Display_Out_MOS (void);
 void Claer_All_rec(void);
 void RUNning (void);
 void Run_Display(void);
 void Set_All_rec(void);
 void Display_Step_0 (u8 Step_count);//display only
 void Out_Control (void);
 void Load_Data(void);
 void tim5init(void);//BUZZER        only 2KHZ
 void tim5svc(void);
 void Alarm_Work(void);//計時結束執行alarm動作
 void EEPROM_Write_StepData();//----------------------------20140917
 */
 
 
 @far @interrupt void TIM1_OVF_IRQ(void);
 @far @interrupt void TIM5_OVF_IRQ(void);
 @far @interrupt void TIM6_OVF_IRQ(void);
 
 
 void EEPROM_Write_StepData(void)
 {
 u8 EPROM_count;
 FLASH_Unlock(FLASH_MEMTYPE_DATA);
 
 for (EPROM_count=0;EPROM_count<10;EPROM_count++)
 {
 FLASH_ProgramByte((addr+EPROM_count),rec_Step_On_Time[EPROM_count]);
 FLASH_ProgramByte((addr+EPROM_count+0x10),rec_Step_Off_Time[EPROM_count]);
 FLASH_ProgramByte((addr+EPROM_count+0x20),rec_Out_MOS[EPROM_count]);
 }
 
 }
 
 void EEPROM_Read_StepData(void)
 {
 u8 EPROM_count;
 
 for (EPROM_count=0;EPROM_count<10;EPROM_count++)
 {
 rec_Step_On_Time[EPROM_count]=FLASH_ReadByte(addr+EPROM_count);
 rec_Step_Off_Time[EPROM_count]=FLASH_ReadByte(addr+EPROM_count+0x10);
 rec_Out_MOS[EPROM_count]=FLASH_ReadByte(addr+EPROM_count+0x20);
 }
 }
 
 
 void Claer_All_rec(void)
 {
 u8 k;
 for (k=0;k<10;k++)
 {
 rec_Step_On_Time[k]=0;
 rec_Step_Off_Time[k]=0;
 rec_Out_MOS[k]=0;
 }
 }
 
 
 void KeyScan(void)
 {
 GPIO_WriteLow(GPIOD,GPIO_PIN_2);
 GPIO_WriteLow(GPIOD,GPIO_PIN_3);
 GPIO_WriteLow(GPIOD,GPIO_PIN_4);
 GPIO_WriteLow(GPIOD,GPIO_PIN_5);
 GPIO_Init(GPIOC,(GPIO_PIN_6|GPIO_PIN_7),GPIO_MODE_IN_PU_NO_IT);//變更 sw4 sw5 成為 input
 
 if(GPIO_ReadInputPin(GPIOB,GPIO_PIN_3)==0)//sw3 for step
 {
 delay(50);
 if(GPIO_ReadInputPin(GPIOB,GPIO_PIN_3)==0)
 {
 while(GPIO_ReadInputPin(GPIOB,GPIO_PIN_3)==0);
 Menu ++;
 if (Menu > 4)
 {
 Menu=1;//------------20140826--------- 0>>1
 Step_count+=1;
 if(Step_count > 9)//0812 10data set
 Step_count=0;
 /*add EEPROM write routine  */
 EEPROM_Write_StepData();
 }
 }
 }
 if(GPIO_ReadInputPin(GPIOA,GPIO_PIN_1)==0)
 {
 delay(50);
 if(GPIO_ReadInputPin(GPIOA,GPIO_PIN_1)==0)//sw1 for START KEY ----20140826----
 {
 while(GPIO_ReadInputPin(GPIOA,GPIO_PIN_1)==0);
 {
 Menu=0;//display to this page ----20140826----
 Start_Run_Flag=1;
 Stop_Run_count=0;
 //         Alarm_flag = 1;//----------------------alarm on
 }
 }
 }
 if(GPIO_ReadInputPin(GPIOA,GPIO_PIN_3)==0)//sw2 for STOP KEY ----20140826----
 {
 delay(50);
 if(GPIO_ReadInputPin(GPIOA,GPIO_PIN_3)==0)
 {
 while(GPIO_ReadInputPin(GPIOA,GPIO_PIN_3)==0);
 {
 Menu=0;//display to this page ----20140826----
 Start_Run_Flag=0;
 Stop_Run_count++;
 Alarm_flag =0;//----------------------alarm on
 if(Stop_Run_count==2)
 {
 Start_Run_Flag=0;////for reload program data----0827
 Step_count=0;//
 Step_On_Time=rec_Step_On_Time[Step_count];//-----------
 Step_Off_Time=rec_Step_Off_Time[Step_count];//---------
 Out_MOS=rec_Out_MOS[Step_count];//--------0827
 {
 Alarm_Time_count =0;
 Alarm_flag=0;
 Finish_flag=0;//*************************************************************-------------------------
 }
 
 }
 if(Stop_Run_count==3)
 {
 Claer_All_rec();
 }
 }
 }
 }
 //PC7 press sw4
 if(GPIO_ReadInputPin(GPIOC,GPIO_PIN_7)==0)
 {
 delay(50);
 if(GPIO_ReadInputPin(GPIOC,GPIO_PIN_7)==0)
 {
 while(GPIO_ReadInputPin(GPIOC,GPIO_PIN_7)==0);
 if(Menu==1)//----20140826----
 {
 Step_count-=1;
 if(Step_count ==255)//0812 10data set
 Step_count=0;
 }
 
 
 if(Menu==2)
 {
 //        Step_On_Time=Step_On_Time[Step_count];
 Step_On_Time -=10;
 if(Step_On_Time > 200)//0803
 Step_On_Time=0;
 rec_Step_On_Time[Step_count] = Step_On_Time;
 }
 if(Menu==3)
 {
 //        Step_On_Time=Step_On_Time[Step_count];
 Step_Off_Time -=10;
 if(Step_Off_Time > 200)//0803
 Step_Off_Time=0;
 rec_Step_Off_Time[Step_count] = Step_Off_Time;
 }
 if(Menu==4)
 {
 //        Step_On_Time=Step_On_Time[Step_count];
 Out_MOS --;
 if(Out_MOS > 3)//0803
 Out_MOS=3;
 rec_Out_MOS[Step_count] = Out_MOS;
 }
 }
 }
 //PC6 press sw5
 if(GPIO_ReadInputPin(GPIOC,GPIO_PIN_6)==0)
 {
 delay(50);
 if(GPIO_ReadInputPin(GPIOC,GPIO_PIN_6)==0)
 {
 while(GPIO_ReadInputPin(GPIOC,GPIO_PIN_6)==0);
 if(Menu==1)//----20140826----
 {
 Step_count+=1;
 if(Step_count > 9)//0812 10data set
 Step_count=0;
 }
 
 
 if(Menu==2)
 {
 //        Step_On_Time=Step_On_Time[Step_count];
 Step_On_Time +=10;
 if(Step_On_Time > 99)//0803
 Step_On_Time=99;
 rec_Step_On_Time[Step_count] = Step_On_Time;
 }
 if(Menu==3)
 {
 //        Step_On_Time=Step_On_Time[Step_count];
 Step_Off_Time +=10;
 if(Step_Off_Time > 99)//0803
 Step_Off_Time=99;
 rec_Step_Off_Time[Step_count] = Step_Off_Time;
 }
 if(Menu==4)
 {
 //        Step_On_Time=Step_On_Time[Step_count];
 Out_MOS ++;
 if(Out_MOS > 3)//0803
 Out_MOS=0;
 rec_Out_MOS[Step_count] = Out_MOS;
 }
 }
 }
 }
 
 /*
 void delay(unsigned int time)
 {
 while(time--);
 }
 */
 
 
 void Display(void)
 {
 GPIO_Init(GPIOC,GPIO_PIN_ALL,GPIO_MODE_OUT_PP_HIGH_FAST);//DISPLAY 7SEGMENT
 GPIO_WriteLow(GPIOE,GPIO_PIN_5);
 if(Hundreds>0)
 {
 GPIO_Write(GPIOC,pcdis[Hundreds]);
 if(pedis[Hundreds])
 GPIO_WriteHigh(GPIOE,GPIO_PIN_5);
 else
 GPIO_WriteLow(GPIOE,GPIO_PIN_5);
 }
 else
 {
 GPIO_Write(GPIOC,0x00);//百位消零
 GPIO_WriteLow(GPIOE,GPIO_PIN_5);//去除A節
 }
 GPIO_Write(GPIOD,0x10);//趨動百位數
 //  if(Menu==0)//電流加上小數點
 //            GPIO_WriteHigh(GPIOC,GPIO_PIN_5);//加上小數點
 delay(500);
 GPIO_WriteLow(GPIOC,GPIO_PIN_ALL);
 delay(5);
 
 GPIO_Write(GPIOC,pcdis[Tens]);
 if(pedis[Tens])
 GPIO_WriteHigh(GPIOE,GPIO_PIN_5);
 else
 GPIO_WriteLow(GPIOE,GPIO_PIN_5);
 GPIO_Write(GPIOD,0x08);//趨動十位數
 //  if((Menu==1)||(Menu==2))//溫度加上小數點
 //            GPIO_WriteHigh(GPIOC,GPIO_PIN_5);//加上小數點
 delay(500);
 GPIO_WriteLow(GPIOC,GPIO_PIN_ALL);
 delay(5);
 
 GPIO_Write(GPIOC,pcdis[Units]);
 if(pedis[Units])//消除a節問題
 GPIO_WriteHigh(GPIOE,GPIO_PIN_5);
 else
 GPIO_WriteLow(GPIOE,GPIO_PIN_5);
 GPIO_Write(GPIOD,0x04);//趨動個位數
 delay(500);
 GPIO_WriteLow(GPIOC,GPIO_PIN_ALL);//消除殘影
 delay(5);
 }
 
 
 void GPIOinit(void)
 {
 GPIO_Init(GPIOC,GPIO_PIN_ALL,GPIO_MODE_OUT_PP_HIGH_FAST);//DISPLAY 7SEGMENT
 GPIO_Init(GPIOD,GPIO_PIN_ALL,GPIO_MODE_OUT_PP_HIGH_FAST);//DISPLAY 3DIGIT
 GPIO_Init(GPIOE,GPIO_PIN_5,GPIO_MODE_OUT_PP_HIGH_FAST);//DISPLAY SEGMENT A
 GPIO_WriteLow(GPIOE,GPIO_PIN_5);
 GPIO_Init(GPIOA,GPIO_PIN_1|GPIO_PIN_3,GPIO_MODE_IN_PU_NO_IT);//INPUT +/- TIME SW1 SW2
 GPIO_Init(GPIOB,GPIO_PIN_3,GPIO_MODE_IN_PU_NO_IT);//INPUT + FIRE POWER SW3
 GPIO_Init(Out0PORT,Out0,GPIO_MODE_OUT_PP_HIGH_FAST);//小TRIAC
 GPIO_Init(Out1PORT,Out1,GPIO_MODE_OUT_PP_HIGH_FAST);//大TRIAC
 GPIO_Init(Out2PORT,Out2,GPIO_MODE_OUT_PP_HIGH_FAST);//大TRIAC
 GPIO_Init(Out3PORT,Out3,GPIO_MODE_OUT_PP_HIGH_FAST);//繼電器
 
 GPIO_Init(GPIOD,BUZZER,GPIO_MODE_OUT_PP_HIGH_FAST);//DISPLAY 7SEGMENT
 }
 
 
 void tim1init(void)//1秒1計數
 {
 TIM1_TimeBaseInit(19,TIM1_COUNTERMODE_UP,10000,0);//2M/20=100khz 除10000次=10hz
 TIM1_ITConfig(TIM1_IT_UPDATE,ENABLE);
 TIM1_GenerateEvent(TIM1_EVENTSOURCE_UPDATE);
 TIM1_Cmd(ENABLE);
 }
 
 void tim1svc(void)//1/10秒1計數
 {
 //-------1/10 秒 作一次的工作 One_Tenth_Flag --> AD轉換
 //-------1秒 作一次的工作 One_Sec_Flag --> 計秒 PWM 開關
 //-------1分鐘作一次的工作 One_Minute_Flag --> 倒數計時關 斷MOS_OUTPUT        檢查日落
 //-------1小時作一次的工作 One_Hour_Flag  --> 計時
 One_Tenth_Flag=1;
 One_Tenth_Count++;
 if(One_Tenth_Count == 10)
 {
 One_Sec_Flag=1;
 Sec_alarm_flag=1;
 One_Tenth_Count=0;
 One_Sec_Count++;
 if(One_Sec_Count<3)
 {
 Display_Change_Flag=1;
 }
 else
 {
 Display_Change_Flag=0;
 }
 if(One_Sec_Count == 60)//----------------60
 {
 One_Sec_Count=0;
 
 One_Minute_Flag=1;
 One_Minute_Count++;
 if(One_Minute_Count==60)
 {
 One_Minute_Count=0;
 One_Hour_Flag=1;
 }
 }
 }
 TIM1_ClearFlag(TIM1_FLAG_UPDATE);
 }
 
 void tim5init(void)//BUZZER        only 2KHZ
 {
 TIM5_TimeBaseInit(TIM5_PRESCALER_32,250);//2M/32 count30
 TIM5_SetCounter(250);
 TIM5_ITConfig(TIM5_IT_UPDATE,ENABLE);
 TIM5_Cmd(ENABLE);
 }
 
 void tim5svc(void)
 {
 
 TIM5_ClearITPendingBit(TIM6_IT_UPDATE);
 }
 
 
 void tim6init(void)
 {
 TIM6_TimeBaseInit(TIM6_PRESCALER_32,250);//TIM6_PRESCALER_8 TIM6_TimeBaseInit
 TIM6_SetCounter(250);
 TIM6_ITConfig(TIM6_IT_UPDATE,ENABLE);//2Mhz/8/250
 TIM6_Cmd(ENABLE);
 }
 
 void tim6svc(void)
 {
 display_time++;
 if(display_time==3)
 {
 if((Menu==0)&&(Running_Flag==0))
 {
 Hundreds=S;
 if(Start_Run_Flag==1)
 {
 Tens=T;
 GPIO_WriteHigh(Out3PORT,Out3);//RELAY OFF        ----0830---
 }
 else
 {
 Tens=P;
 GPIO_WriteLow(Out3PORT,Out3);//RELAY OFF        ----0830---
 }
 Units= Step_count;
 Display();
 }
 else
 {
 Display();
 }
 display_time=0;
 }
 count6++;
 if (count6==50)//250>>25
 {
 KeyScan();
 count6=0;
 }
 TIM6_ClearITPendingBit(TIM6_IT_UPDATE);
 }
 
 
 void Display_Step_0 (u8 Step_count)
 {
 Hundreds=S;
 if(Running_Flag==1)//-----------0826-------------
 Tens=T;
 else
 Tens=P;
 Units= Step_count;
 }
 void Display_Step (u8 Step_count)
 {
 Hundreds=S;
 Tens=D;
 Units= Step_count;
 Step_On_Time=rec_Step_On_Time[Step_count];
 Step_Off_Time=rec_Step_Off_Time[Step_count];
 Out_MOS=rec_Out_MOS[Step_count];
 }
 void Display_Kyin_On_Step (void)
 {
 Hundreds= O;
 Display_Data=Step_On_Time;
 Tens=(Display_Data%100)/10;
 Units=Display_Data%10;
 }
 
 void Display_Kyin_Off_Step (void)
 {
 Hundreds= F;
 Display_Data=Step_Off_Time;
 Tens=(Display_Data%100)/10;
 Units=Display_Data%10;
 }
 void Display_Out_MOS (void)
 {
 Hundreds=O;
 Tens=D;
 Units= Out_MOS;
 }
 
 
 void RUNning (void)
 {
 if(Start_Run_Flag==1)
 {
 if(One_Sec_Flag==1)
 {
 if(Step_On_Time!=0)
 {
 Running_Flag=1;//---------------------
 One_Sec_Flag=0;
 if(One_Minute_Flag==1)
 {
 One_Minute_Flag=0;
 Step_On_Time--;
 }
 Display_Change_count++;
 if(Display_Change_count>4)
 Display_Change_count=0;
 if(        Display_Change_count<3)
 Display_Kyin_On_Step();
 else
 Display_Step_0 (Step_count);
 }
 else if(Step_Off_Time!=0)//Step_On_Time=0
 {
 One_Sec_Flag=0;
 Out_MOS=0;//output off
 if(One_Minute_Flag==1)
 {
 One_Minute_Flag=0;
 Step_Off_Time--;
 }
 Display_Change_count++;
 if(Display_Change_count>4)
 Display_Change_count=0;
 if(Display_Change_count<3)
 Display_Kyin_Off_Step();
 else
 {
 Display_Step_0 (Step_count);
 }
 }
 else//(Step_Off_Time & Step_On_Time)==0
 {
 Step_count++;
 Display_Step (Step_count);//--------------------------------
 if(Step_count >9)
 {
 Start_Run_Flag=0;
 Step_count=0;
 Step_On_Time=rec_Step_On_Time[Step_count];//-----------
 Step_Off_Time=rec_Step_Off_Time[Step_count];//---------
 Out_MOS=rec_Out_MOS[Step_count];//--------0827
 GPIO_WriteLow(Out3PORT,Out3);//RELAY OFF        ----0830---
 Finish_flag=1;//**********************************************************--------------------------
 }
 else
 {
 Step_On_Time=rec_Step_On_Time[Step_count];
 Step_Off_Time=rec_Step_Off_Time[Step_count];
 Out_MOS=rec_Out_MOS[Step_count];        //
 }
 }
 }
 }
 }
 
 
 void Run_Display(void)
 {
 if(Start_Run_Flag ==1)
 {
 Hundreds=S;
 Tens=T;
 Units= Step_count;
 }
 else
 {
 Hundreds=S;
 Tens=P;
 Units= Step_count;
 }
 }
 
 void Set_All_rec(void)
 {
 u8 k;
 for (k=0;k<10;k++)
 {
 rec_Step_On_Time[k]=30;
 rec_Step_Off_Time[k]=10;
 rec_Out_MOS[k]=0;
 }
 }
 
 void Out_Control (void)
 {
 switch(Out_MOS)
 {
 case 0: GPIO_WriteLow(Out0PORT,Out0);
 GPIO_WriteLow(Out1PORT,Out1);
 GPIO_WriteLow(Out2PORT,Out2);
 GPIO_WriteLow(Out3PORT,Out3);//RELAY OFF
 break;
 case 1: GPIO_WriteHigh(Out0PORT,Out0);
 GPIO_WriteLow(Out1PORT,Out1);
 GPIO_WriteLow(Out2PORT,Out2);
 GPIO_WriteHigh(Out3PORT,Out3);
 break;
 case 2: GPIO_WriteLow(Out0PORT,Out0);
 GPIO_WriteHigh(Out1PORT,Out1);
 GPIO_WriteLow(Out2PORT,Out2);
 GPIO_WriteHigh(Out3PORT,Out3);
 break;
 case 3: GPIO_WriteLow(Out0PORT,Out0);
 GPIO_WriteLow(Out1PORT,Out1);
 GPIO_WriteHigh(Out2PORT,Out2);
 GPIO_WriteHigh(Out3PORT,Out3);
 break;
 default: break;
 }
 }
 
 void Load_Data(void)
 {
 //        u8 z;
 //        for(z=0;z<10;Z++)
 {
 Step_count=0;
 Step_On_Time=rec_Step_On_Time[Step_count];
 Step_Off_Time=rec_Step_Off_Time[Step_count];
 Out_MOS=rec_Out_MOS[Step_count];        //
 }
 
 }
 
 //-------------------------------------------------------------EPROM 0916-----------
 
 //--------------------------------------------------------------------------
 
 @far @interrupt void TIM1_OVF_IRQ(void)
 {
 tim1svc();
 }
 
 @far @interrupt void TIM5_OVF_IRQ(void)
 {
 tim5svc();
 }
 
 
 
 @far @interrupt void TIM6_OVF_IRQ(void)
 {
 tim6svc();
 }
 
 
 void main(void)
 {
 GPIOinit();//顯示用
 tim1init();
 tim5init();
 tim6init();
 rim();
 Start_Run_Flag=0;
 //  Set_All_rec();//  0918----
 EEPROM_Read_StepData(); //--0918----
 
 
 while(1)
 {
 switch(Menu)//顯示用
 {
 case 0: if(Start_Run_Flag==1) // Run_Display();//running mode display and start stop
 {
 if(Load_Data_flag==0)
 {
 Load_Data_flag=1;
 Load_Data();
 }
 RUNning ();
 }
 else
 {
 Run_Display();//--------0827
 }
 break;
 case 1: Display_Step (Step_count);//Display_Data = Step_count;//display count number
 break;
 case 2:        Display_Kyin_On_Step ();//Display_Data = Step_On_Time[Step_count];
 break;
 case 3:        Display_Kyin_Off_Step ();//Display_Data = Step_Off_Time[Step_count];
 break;
 case 4: Display_Out_MOS ();//Display_Data = Lamp_intensity_AD;//display CDS A/D value
 break;
 
 default:break;
 }
 Out_Control ();
 Alarm_Work();
 }
 }
 
 
 
 
 
 #ifdef USE_FULL_ASSERT
 
 /**
 * @brief  Reports the name of the source file and the source line number
 *   where the assert_param error has occurred.
 * @param file: pointer to the source file name
 * @param line: assert_param error line source number
 * @retval : None
 */
 void assert_failed(u8* file, u32 line)
 {
 /* User can add his own implementation to report the file name and line number,
 ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
 
 /* Infinite loop */
 while (1)
 {
 }
 }
 #endif
 
 /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
 
 
 
 
 | 
评分
查看全部评分
 |