-
Data: 2010-05-14 19:22:40
Temat: WinAVR - Pytanie do znawcow C
Od: "roxy" <k...@o...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Mam pytanie dlaczego zmienna Ki oraz Kp (s->Ki oraz s->Kp) wchodzaca w
sklad struktury s_pid przyjmuje losowe warosci wewnatrz funkcji
RegulatorNextStep;
Przedstawiam ponizej zawartosc plikow zrodlowych
Dodam tylko ze problem rozwiazalem ale nie moge sobie wytlumaczyc tak
dziwnego zachowania kompilatora. Rozwiazanie problemu polegalo na
przeniesieniu tworzenia struktury (struct s_pid pid;) z wnetrza funkcji
main() na zewnatrz jej (globalna).
********
plik main.c
********
#include "pid.h"
...
main(1);
{
...
struct s_pid pid; // jezeli przeniose to strukture na
zewnatrz funkcji main
// to program wykonuje sie
prawidlowo
...
InitReg(&pid,40,1,0);
...
while(1);
{
...
err=RegulatorNextStep(&pid,i_set,current);
...
}// end while
}// end main
***************************
plik pid.h
***************************
#ifndef _PID_H_
#define _PID_H_
struct s_pid
{
signed int Kp;
signed int Ki;
signed int Kd;
signed long sigma;
signed int delta;
};
void InitReg(struct s_pid *s, signed int Kp, signed int Ki, signed int Kd);
signed int RegulatorNextStep(struct s_pid *s,signed int set,signed int mes);
void RegulatorReset(struct s_pid *s);
#endif
*****************************
plik pid.c
**************************
#include "pid_flt.h"
...
signed int RegulatorNextStep(struct s_pid *s,signed int set_value,signed int
measure_value)
{
...
p_term=(s->Kp) * error;
i_term= (s->Ki * s->sigma)/8;
...
lcd(s->Kp); // !!!!!! dla czego mam losowe wartosci???
lcd(s->Ki);
...
return (signed int)out;
}
void InitReg(struct s_pid *s, signed int Kp, signed int Ki, signed int Kd)
{
s->Kp=Kp;
s->Ki=Ki;
s->Kd=Kd;
s->sigma=0;
s->delta=0;
}
****************************************************
**************************
__________ Informacja programu ESET NOD32 Antivirus, wersja bazy sygnatur wirusow
5103 (20100510) __________
Wiadomosc zostala sprawdzona przez program ESET NOD32 Antivirus.
http://www.eset.pl lub http://www.eset.com
Następne wpisy z tego wątku
- 18.05.10 23:53 MrWebsky
- 18.05.10 23:59 Konop
- 19.05.10 21:09 Adam Dybkowski
- 22.05.10 14:13 roxy
- 22.05.10 16:01 Artur M. Piwko
Najnowsze wątki z tej grupy
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
Najnowsze wątki
- 2025-07-14 granice
- 2025-07-14 Awaria VM?
- 2025-07-14 Gdańsk => Programista Kotlin <=
- 2025-07-14 Warszawa => Junior Rekruter <=
- 2025-07-14 Warszawa => Specjalista rekrutacji IT <=
- 2025-07-14 Wkłady do zniczy...
- 2025-07-14 Warszawa => Specjalista ds. Sprzętu Komputerowego <=
- 2025-07-14 Re: PO chroniło i chroni policyjnych bandziorów [zawiasy za katowanie obywatela (Poznań czerwiec 2012)]
- 2025-07-14 Warszawa => International Freight Forwarder <=
- 2025-07-14 Warszawa => Recruiter 360 <=
- 2025-07-14 Re: Rz?Âd ZAKAZUJE magazyn?Â?w energii ?!! Nowe prawo od 14 lipca to SZOK! ??Â
- 2025-07-14 Warszawa => Sales Assistant <=
- 2025-07-13 Fałszywe alerty
- 2025-07-12 dlaczego gadacie z tym debilem
- 2025-07-13 Unia Europejska przygotowuje nowy podatek