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



Teraz jest 16 kwi 2024, o 13:34


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 21 sie 2019, o 19:39 
Offline
Nowy

Dołączył(a): 10 cze 2015
Posty: 8
Pomógł: 0

Witam!
Od pewnego czasu próbuję przejść z programowania AVR w czystym C do C++ (głównie chodzi o wzbogacenie się o klasy których mi brakuje) i mam problem z połączeniem klas i przerwań.

Mam tu taki prosty program który powinien migać diodą led podłączoną do pinu PD7 a jednak nic się nie dzieje.
Programuję ATmega328P taktowana wewnętrznie 8MHz.

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


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


Z góry dziękuję za pomoc w rozwiązaniu problemu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sie 2019, o 21:43 
Offline
Użytkownik

Dołączył(a): 26 mar 2014
Posty: 34
Pomógł: 11

Zmienna statyczna musi być zdefiniowana na zewnątrz klasy i nie może być protected jak chcesz się odnieść do niej poza klasą.
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2019, o 07:26 
Offline
Nowy

Dołączył(a): 10 cze 2015
Posty: 8
Pomógł: 0

A możesz mi podać przykład jak to dokładnie zrobić bo nie bardzo rozumiem. Zadeklarowałem tą zmienną na zewnątrz klasy. w Klasie sekcje protected zmieniłem na public ale jednak dalej nie działa. Program kompiluje się prawidłowo, ale dioda nie miga.

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2019, o 21:18 
Offline
Użytkownik

Dołączył(a): 26 mar 2014
Posty: 34
Pomógł: 11

Dioda nie miga dlatego że w tym momencie wskaźnik pTimer jest równy 0 i gdy odnosisz się do zmiennej led_flag przez Timer::pTimer->led_flag program próbuje odwołać się do zmiennej pod adresem 0. Musisz jeszcze zaincjalizować wskaźnik pTimer np w konstruktorze klasy wskaźnikiem this.
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę


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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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