Próbuje zaprogramować regulator PID i mam problem ze zmiennymi. Używam AVR Studio, mam 3 c pliki w 1. mam zadeklarowane funkcje regulatora i main() w 2. Menu a w 3. jest obsługa LCD. Problem polega na tym, że będąc w Menu wprowadzam nastawy regulatora, ale po wyjściu z funkcji menu w main nastawy nie zostają zapamiętane. W dużym uproszczeniu mój program wygląda tak:
main.c
menu.c
Będąc w funkcji menu() nastawy wyświetlają się prawidłowo i można je normalnie zmieniać przy użyciu klawiatury. W czym może tkwić problem?
main.c
#include "menu.h"
#include "lcd.h"
...
signed short K_P=0, K_I=0, K_D=0;
int main(void)
{
...
menu(K_P,K_I,K_D);
wyswietlLCD(K_P);
wyswietlLCD(K_I);
wyswietlLCD(K_D);
while(1)
}
menu.c
void Menu_Nastawy(unsigned short int K)
{//funkcja ustawiająca nastawy regulatora}
void menu(signed short wspl_KP, signed short wspl_KI,
signed short wspl_KD)
{
...
Menu_Nastawy(wspl_KP);
wyswietlLCD(K_P);
Menu_Nastawy(wspl_KI);
wyswietlLCD(K_I);
Menu_Nastawy(wspl_KD);
wyswietlLCD(K_D);
...
czekaj_na_enter();
}
Będąc w funkcji menu() nastawy wyświetlają się prawidłowo i można je normalnie zmieniać przy użyciu klawiatury. W czym może tkwić problem?
