Микропроцесорна система за регулиране на температура


Категория на документа: Информатика


int target_temp; //задедена температура
int kp; //коефиценти на рекулатора пропорционален, интегрален и диференциален
int ki;
int kd;

int target_temp_eeprom __attribute__ ((section (".eeprom"))); //променливи в EEPROM за съранение на настройките
int kp_eeprom __attribute__ ((section (".eeprom")));
int ki_eeprom __attribute__ ((section (".eeprom")));
int kd_eeprom __attribute__ ((section (".eeprom")));

//допълнителни променливи
char flag_start=0; //тази променлива указва дали е стартиран ПИД при !=0 е стартиран
char str[17]; //за преобразуване на int променливи в текст за изписване
int data; //за редактиране на параметър
int integral_state; //натрупване на интегрална съставка
int old_current_temp; //помощни данни за изчисляване на диференциланата съставка
unsigned int time_on_simistor; //време за включване на симистора от Timer 1 на процесора

#define MAX_TIME 20000 //максимално време след което може да се включи симистора изчислява се въз основа на:
//16000000/100 = 160000 работната честота на процесора / на времето за включване 10mS или 100 пъти в секунда
//понеже Timer 1 e 16 битов и максималното му число е 65535 (т.е. ще имаме препълване) го настройваме с
//предварително делене на 8 и получаваме 160000/8=20000 което ни удоволетворява

//дефинеране на клавишите
#define STOP 0b00111110
#define START 0b00111101
#define ENTER 0b00111011
#define ESC 0b00110111
#define DOWN 0b00101111
#define UP 0b00011111

//прототипи на функции
void prn_indicator(char num_line,char *text);
char key(void);
void edit_params(void);
char change_parameter(void);

int main(void){

//прочитане на настройките от EEPROM

target_temp=eeprom_read_word(&target_temp_eeprom);

kp=eeprom_read_word(&kp_eeprom);

ki=eeprom_read_word(&ki_eeprom);

kd=eeprom_read_word(&kd_eeprom);

//инциализиране на изводите към LCD индикатора




Сподели линка с приятел:





Яндекс.Метрика
Микропроцесорна система за регулиране на температура 9 out of 10 based on 2 ratings. 2 user reviews.