Aktywne Wpisy
Jak zemścić się na byłej #!$%@? #!$%@? co mnie potraktowała jak śmiecia proszę o podpowiedzi #zwiazki
marjanzbrajton +259
Skopiuj link
Skopiuj linkWykop.pl
Ukraina
Podróże
Gospodarka
Informacje
Technologia
Motoryzacja
Sport
Rozrywka
Igrzyska
Ciekawostki
Nosz kurde blaszka... Jak wrzucę takie coś, to w losowym miejscu program się wysypuje. Jak zakomentuję wszystko oprócz jednej linii inicjalizacji to wszystko działa godzinami. Program przechodzi przez tego ifa tylko raz.
if ( sekunda>0) {
MyRTCPtr = RTC1_Init((LDD_TUserData *)NULL, TRUE); /* Initialize the device, reset all RTC registers */
} else {
MyRTCPtr = RTC1_Init((LDD_TUserData *)NULL, TRUE); /* Initialize the device, preserve time settings */
}
Co ja robię nie tak :/
Komentarz usunięty przez moderatora
nieskończona rekurencja albo pętla z alokacją pamięci lub przesuwaniem wskaźnika? Co robi RTCI_Init? Czym dokładnie się wysypuje? Nie masz debugera?
edyta: widzisz, że if i else robią to samo?
Jeżeli zamienię warunek na (0) to tez się nie wykrzacza.
Zmienna sekunda to volatile char i jest ustawiana na 0 przy
Możliwe, żeby program wykonał przy jednym sprawdzeniu warunku obie części ifa?
Jeżeli nie jest możliwa sytuacja, że przeleci przez obie części ifa to ja już nie wiem. Wiem, że RTC nie lubi podwójnej inicjalizacji... Poszukam informacji czy deinit kasuje licznik sekund. Jeżeli nie to dorzucę deinit przed każdym initem i zobaczymy
Ogólnie nie jestem specjalistą od programowania przy
Chyba skończy się na tym, że zegar będzie na zewnętrznym scalaku a nie wewnątrz procesora :/
int durnazmienna=0;
Po wyłączeniu optymalizacji kodu zaczęło działać.
Nie pamiętam dokładnie jak to jest z
char
ami, ale możliwe, że one domyślnie są bez znaku, więc proponuję zmienić
sekunda jest zmieniona na volatile int i nie pomogło.
Spróbuję zmienić durnazmienna na volatile, ewentualnie mogę ją deklarować jako stałą...