Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 11 sty 2025, o 00:43


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 9 lut 2016, o 21:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 gru 2013
Posty: 366
Lokalizacja: Wałbrzych
Pomógł: 7

Witam . W kodzie poniższym próbuje odczytywać i zapisywać dane do pamięci eeprom Problem jest taki że gdy wywołam funkcję do kopiowania zawartości z pamięci eeprom do ram to program nie odpowiada . na port rs232 wysyłana jest tylko raz jedna ramka danych

Proszę o jakąś wskazówkę :)

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2016, o 01:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

driver0207 napisał(a):
Proszę o jakąś wskazówkę :)


Mam dwie:
1. Na pewno brakuje "volatile".
2. Dużo za dużo się "dzieje" w procedurze obsługi przerwania.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2016, o 09:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 gru 2013
Posty: 366
Lokalizacja: Wałbrzych
Pomógł: 7

Już rozwiązałem problem. Gdy odczytały mi się wartości z pamięci eeprom 0xff to przy wysyłaniu tych zmiennych na port program się zawieszał zrobiłem funkcje która sprawdza czy pamięć jest pusta i jeśli jest to zapisuje wartości domyślne do eeprom

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2016, o 21:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Może i uruchomiłeś, ale program jest nieporządnie napisany. Jak to wcześniej zauważył anshar
Cytuj:
Dużo za dużo się "dzieje" w procedurze obsługi przerwania.

Przerwanie powinno trać jak najkrócej i wykonywać tylko proste operacje. W przerwaniu powinny pozostawać tylko operacje typu sprawdzanie (ms == x) i ustawienie flagi a nie całe czasochłonne operacje. A już w programie w pętli głównej powinno być sprawdzanie tej flagi i wykonywanie tych operacji.
Pomyśl na takim przerobieniem swojego kodu.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lut 2016, o 01:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

A co z volatile? ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lut 2016, o 10:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Cytuj:
A co z volatile? ;)

To także do poprawienia ;)

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 8 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO