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



Teraz jest 29 mar 2024, o 00:19


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 16 cze 2018, o 20:51 
Offline
Nowy

Dołączył(a): 04 kwi 2018
Posty: 5
Pomógł: 0

Witam

Mam dziwny przypadek w BASCOM'ie AVR. Są dwie zmienne Zz i N_op. Na zmiennej Zz wykonuje się dodawanie a zmienna N_op
przyjmuje wartości 1 i 2 i to w przypadkowej kolejności. Zmiana nazwy N_op nie zmienia sytuacji.
Co może być przyczyną? Bo już nie mam pomysłów jaka jest tego przyczyna.

Sub Opcja_plus
Incr Zz
If Zz > 10 Then Zz = 1
Incr N_op
If N_op > 10 Then N_op = 1
Locate 2 , 1
Lcd T_op(n_op) ; " " 'Wyświetlanie elementów tablicy
F = Zz
Shift F , Left , 4
F = F + N_op
Portd = F : Waitms 500 : Portd = 0 ' To tylko do podglądu
End Sub



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 cze 2018, o 21:14 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 759
Pomógł: 37

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


spróbuj tak.
edit.
chyba źle zrozumiałem one maja się dwie razem zwiększać ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 cze 2018, o 22:54 
Offline
Nowy

Dołączył(a): 04 kwi 2018
Posty: 5
Pomógł: 0

Witam
Dziękuję za szybką odpowiedź.
Czyli wygląda na to że procedura IF nie może być w jednej linii ?
Sprawa wygląda inaczej. Zmienna Zz nic nie robi. Jest tylko na próbę i działa normalnie tzn. zwiększa wartość.
Natomiast ta N_op, mimo tych samych funkcji przybiera wartości 1 i 2 i to w różnych układach. Pomimo zwiększania
przybiera wartość np. 1 a potem parę razy 2 i nie ma jakiegoś systemu. Jakby to były liczby przypadkowe.
Nigdy nie jest większa np. 3 Port D służy tylko do podglądu wartości Zz i N_op. Zwiększanie stosów i ramki nie zmienia sytuacji.
Co to może być. Czy zmienna o nazwie N_op ma jakieś specjalne znaczenie ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 cze 2018, o 07:05 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 759
Pomógł: 37

Raczej nie ma. Wrzuc caly kod. Bedzie latwiej



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 cze 2018, o 18:22 
Offline
Nowy

Dołączył(a): 04 kwi 2018
Posty: 5
Pomógł: 0

Witam.
Cały kod nie ma tutaj znaczenia.Jest duży więc nie ma sensu go rozpatrywać.
Wcześniej wszystko działało. Nie wiem w którym momencie przestało działać.
Wspomniana zmienna odpowiada za wybór opcji.
Ciekawostką jest dlaczego w jednej procedurze :

dim Zz As Byte
dim N_op As Byte
.........
Incr Zz
If Zz > 10 Then Zz = 1
Incr N_op
If N_op > 10 Then N_op = 1

Zwiększanie zmiennej Zz przebiega prawidłowo tzn. przyjmuje wartości od 1 do 10,
a zmienna N_op przyjmuje wartości od 1 do 2 i to w przypadkowej kolejności.
Najczęściej jest 2 po kilku naciśnięciach klawisza wyskakuje 1 a potem znów 2.
W symulatorze działa prawidłowo.
I co można o tym sądzić ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 cze 2018, o 16:03 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 759
Pomógł: 37

Sadze, że masz gdzieś babola w kodzie. I zastanów się gdyby Tobie ktoś takie pytanie zadał czy byłbyś w stanie mu cos doradzić po przeczytaniu dwóch linijek kodu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 cze 2018, o 16:54 
Offline
Nowy

Dołączył(a): 04 kwi 2018
Posty: 5
Pomógł: 0

Witam.
I tutaj masz rację, że mam babola. Znalazł się w obsłudze przerwania które tą zmienną zmieniało na jeden.
Zamiast raz na 15 sekund to po każdym obiegu licznika.
Co do całego kodu to i tak nie jest proste przeglądanie ponad 900 linii przez kogoś obcego. Sam przeglądałem go
bardzo wiele razy a że obsługa przerwania jest na końcu programu więc nie skojarzyłem z tym działaniem.
Nawet podejrzewałem jakiś błąd kompilatora.
Dziękuję za odpowiedź.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 cze 2018, o 17:00 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 759
Pomógł: 37

Ja Cie rozumie o co Tobie chodzi. Ale tez sam bys pewnie dal taka sama odpowiedz :) To teraz pozytywnej dalszej pracy zycze.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 cze 2018, o 17:24 
Offline
Nowy

Dołączył(a): 04 kwi 2018
Posty: 5
Pomógł: 0

Dzięki i nawzajem. Na drugi raz bardziej się postaram. Ale tutaj już straciłem nadzieję nas rozwiązanie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 cze 2018, o 20:38 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 759
Pomógł: 37

E tam. Czasem tez tak mam. Wtedy zostawiam projekt na dzień, dwa wracam do niego później i wszystko widzę zupełnie inaczej.



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: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO