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



Teraz jest 19 kwi 2024, o 18:24


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 23 lip 2016, o 00:42 
Offline
Użytkownik

Dołączył(a): 10 kwi 2014
Posty: 61
Pomógł: 0

Witam!
Panowie mam taki mały problem. Chciałbym sobie napisać bibliotekę realizującą programowe kanały PWM. Ćwiczonka sobie przerobiłem i sam mechanizm jest klarownie czysty i jasny :) Chciałbym jednak mieć możliwość definiowania sobie w programie ilości takich kanałów oraz to do jakich wyprowadzeń je podłączyć. Głowie się i głowie i nie mogę nic wymyślić...

Załóżmy, że potrzebuję sobie utworzyć 3 kanały i chciałbym, żeby wyglądało to np tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Sęk w tym, że jedyne co mi przychodzi do głowy to kopiowanie programów i wybór przy użyciu preprocesora. Tylko, że takie rozwiązanie wydaje mi się bardzo nieeleganckie. Macie może pomysł jak to zrealizować, żeby nie pisać po 15 różnych rodzajów obsługi przerwania różniących się tylko ilością warunków typu :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Może powinienem się z tym jakoś uciec do C++?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2016, o 06:03 
Offline
Użytkownik

Dołączył(a): 26 lip 2015
Posty: 269
Pomógł: 34

Ja bym spróbował użyć pętli np for przerwanie niestety będzie się dłużej wykonywać, ale w tedy będziesz miał uniwersalność.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2016, o 10:12 
Offline
Nowy

Dołączył(a): 29 lip 2014
Posty: 10
Zbananowany użytkownik

Pomógł: 0

Czy koledze chodzi o przypisanie pinów procesora do przerwań i ewentualną ich obsługę w pętlach?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2016, o 12:08 
Offline
Użytkownik

Dołączył(a): 10 kwi 2014
Posty: 61
Pomógł: 0

No mniej więcej coś takiego. Jakby miała to być funkcja to mógłbym to rozwiązać tak jak przykład SuperDebounce z BB, ale fakt iż jest to przerwanie trochę mi komplikuje życie. Nie chciałbym też za bardzo tracić na prędkości.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2016, o 12:21 
Offline
Nowy

Dołączył(a): 29 lip 2014
Posty: 10
Zbananowany użytkownik

Pomógł: 0

Przyjrzyj się postów o preprocesora, tam pokazałem drogę do której ja doszedłem, aby mieć tablicowy dostęp do każdego/dowolnego pinu AVR. Opiera się na wskaźnikach, nowych definicjajach DDR PORT I PIN, no i oczywiście ztablicowaniu adresów startowych portów.A wszystko i tak bazuje na definicjach avrgcc, więc kompilator powinien wytworzyć optymalny kod binarny.

------------------------ [ Dodano po: 3 minutach ]

W tematyce samych przerwań, obsługi i skomplikowanych callback'ów, to tylko mistrz Mirek tudzież jego najlepsi studenci. Na razie ja w tym zakresie mam za małe doświadczenie...



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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