Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef COMPONENTTEST
- typedef unsigned char boolean;
- typedef unsigned char uint8;
- typedef unsigned short uint16;
- typedef unsigned int uint32;
- typedef float float32;
- typedef struct
- {
- uint32 errorCode;
- float32 temperature;
- } dtErrorMessage;
- typedef enum
- {
- FAN_OFF,
- FAN_ON
- } dtFanState;
- #define ERROR_CODE_OVER_TEMP ((uint32)1u)
- #define ERROR_CODE_UNDER_TEMP ((uint32)2u)
- extern float32 GetTemperature(void);
- extern void SetState(dtFanState fanState);
- extern void SendErrorReport(dtErrorMessage* errorMsg);/*{ Mivel a függvényekhez az én értelmezésemben nem nyúlhattam ezért azokat késznek vettem amit felhasználhatok!
- if(errorMsg->temperature>160.0 )
- errorMsg->errorCode=ERROR_CODE_OVER_TEMP; Ez csak egy elméleti segítség saját magamnak
- if(errorMsg->temperature<-20.0)
- errorMsg->errorCode=ERROR_CODE_UNDER_TEMP;
- }*/
- #endif /* !COMPONENTTEST */
- /* Please add your own additions here! */
- void FanControl(void)
- {
- dtErrorMessage Error; /*létrehoztam a hiba üzenethez szükséges változót ugyanis úgy gondoltam hogy nem csak a rendszer indításánál
- jöhet olyan érték ami Errort okoz hanem a rendszer működése közben is pl kiüt egy tűz a rendszerben*/
- float32 tmp;
- tmp=GetTemperature();
- if(tmp<160.0 && tmp>-20.0) /*Amennyiben a megfelelő határok között van a hőmérséklet, elindul a vezérlő ciklus*/
- {
- while(tmp<160.0 && tmp>-20.0) /*Amíg a határértékek között mozgunk a rendszer működik*/
- {
- while(tmp>23.0) /*2 fok hiszterézis figyelembe vétele*/
- {
- if(tmp>=25.0)
- SetState(FAN_ON);
- tmp=GetTemperature();
- }
- SetState(FAN_OFF);
- tmp=GetTemperature(); /*tmp nek ujra a lekérdezett hőm. lesz az értéke,
- és az volt a gyanúm ha else if-et használok a továbbiakban akkor az csak az első lekérdezett tmp-t fogja vizsgálni*/
- }
- }
- if(tmp>160.0) /* A hiba küldéshez különösebb magyarázatot nem fűznék */
- {
- Error.temperature=tmp;
- Error.errorCode=ERROR_CODE_OVER_TEMP;
- SendErrorReport(&Error);
- }
- if(tmp<-20.0)
- {
- Error.temperature=tmp;
- Error.errorCode=ERROR_CODE_UNDER_TEMP;
- SendErrorReport(&Error);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement