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



Teraz jest 29 mar 2024, o 16:05


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 35 ]  Przejdź na stronę Poprzednia strona  1, 2
Autor Wiadomość
PostNapisane: 29 sie 2021, o 20:37 
Offline
Użytkownik

Dołączył(a): 03 lut 2016
Posty: 126
Pomógł: 0

No właśnie tak zrobiłem, ale znów coś nie do końca tak jak ma być, zmienna extern TCZAS jednostki jest w pliku zegar.h. Moje pliki wyglądają tak key.h:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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

a błąd po kompilacji otrzymuję taki, kiedy już zadeklaruję funkcję:
Cytuj:
||=== Build: Release in aqua_komp (compiler: GNU GCC Compiler for AVR) ===|
key.h|5|error: unknown type name ‘TCZAS’|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sie 2021, o 22:11 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

No zamień miejscami że te pliki jak pokazałem na obrazku

Obrazek



bo przecież skąd kompilator ma wiedzieć co to jest TCZAS gdy analizuje wstawione linie z key.h ? skoro typ TCZAS pojawia się dopiero w kolejnych liniach po zainkludowaniu zegar.h

Możesz też wprost zainkludować plik zegar.h na początku swojego pliku key.h


Autor postu otrzymał pochwałę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sie 2021, o 20:36 
Offline
Użytkownik

Dołączył(a): 03 lut 2016
Posty: 126
Pomógł: 0

No przecież. Dlaczego sam na to nie wpadłem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2021, o 21:17 
Offline
Użytkownik

Dołączył(a): 03 lut 2016
Posty: 126
Pomógł: 0

A podrzucił by mi ktoś pomysł jak przy pomocy mojego przerwania zrobić żeby po 2 sekundach była wywoływana funkcja która na PB1 podaje mi stan wysoki? Do tej pory próbowałem w ten sposób żeby wciśnięcie przycisku wrzucało do zmiennej tym czasowej liczbę sekund i w warunku chciałem porównywać zmienną tymczasową ze zmienną aktualną i jeżeli był równa 2 to miałem dostawać stan wysoki na PB2. Ale guzik z pętelką mi z tego wyszło a mało tego przemyślałem to i jeżeli do zmiennej tymczasowej przypisał bym 59 to dwie sekundy później musiało by być 61 a tyle w moim programie nie pojaw się nigdy. :oops:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 paź 2021, o 21:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 mar 2015
Posty: 44
Pomógł: 2

Skorzystaj z "miodulo" - żart Mirek lubi . BB 3.4.1 str91%- modulo ( reszta z dzielenia ) if(sek%2){ PORTB |= (1<<PB1);}else PORTB ~= (1<<PB1); . Poza tym można to wrzucić do funkcji pętli głównej lub innej funkcji nie jest to blokujące ,ale osobiście bym raczej do procedury przerwania nie wsadzał ,



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: 35 ]  Przejdź na stronę Poprzednia strona  1, 2

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO