BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Radiocomandi (https://www.baronerosso.it/forum/radiocomandi/)
-   -   Decodificatore SBus 16ch (https://www.baronerosso.it/forum/radiocomandi/374002-decodificatore-sbus-16ch.html)

gawain 06 gennaio 18 20:37

Citazione:

Originalmente inviato da Lillo (Messaggio 5080673)
Ehm... ci sarebbe anche un altro piccolo problema.
I servi attaccati al decodificatore "bippano" (voce del verbo fare bip :lol:) a turno sempre.
Mi sa tanto che c'è qualche ciclo che scrive qualche valore in sequenza sulle porte le quali vengono subito sovrascritte dal valore ricevuto dal ricevitore.

bisogna guardare il codice nel dettaglio... forse non hanno disabilitato l'interrupt che Arduino usa per la funzione micros() . comunque per scrivere le uscite per 16 servi hanno fatto i salti mortali. io mi sono fatto un Flight controller dedicato agli alianti in special modo f3k e per aver un timing perfetto al microsecondo senza collisioni devi segare tutte le librerie di Arduino scrivere le porte direttamente come bytes esempio PORTD^=(PULSE_MASK & ENABLE_MASK) questo oggetto crea fonti di salita e discesa sequenziali con pulsemask avente due bit sequenziali a 1 e shifta di una posizione ad ogni comparazione raggiunta del timer...ma così hai il limite di una porta se non vuoi fare schifezze...

Lillo 07 gennaio 18 11:30

Citazione:

Originalmente inviato da gawain (Messaggio 5080698)
bisogna guardare il codice nel dettaglio... forse non hanno disabilitato l'interrupt che Arduino usa per la funzione micros() . comunque per scrivere le uscite per 16 servi hanno fatto i salti mortali. io mi sono fatto un Flight controller dedicato agli alianti in special modo f3k e per aver un timing perfetto al microsecondo senza collisioni devi segare tutte le librerie di Arduino scrivere le porte direttamente come bytes esempio PORTD^=(PULSE_MASK & ENABLE_MASK) questo oggetto crea fonti di salita e discesa sequenziali con pulsemask avente due bit sequenziali a 1 e shifta di una posizione ad ogni comparazione raggiunta del timer...ma così hai il limite di una porta se non vuoi fare schifezze...

Non credo che siano tanti ad utilizzare tutte le porte del decoder. Magari riducendo il numero di porte 8-12 aumentano le risorse a disposizione e si evitano i problemi.
Comunque la rogna principale resta la forzatura a zero delle porte.


Tutti gli orari sono GMT +2. Adesso sono le 18:18.

Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002