Obsluha USARTu v PIC18F

Admin HWnews hwnews na cncnet.info
Pondělí Únor 20 12:47:22 CET 2023


Zdravim,

resim tady takovou zalezitost a at delam co delam nenachazim reseni.

Mam v programu dve preruseni jedno od timeru vyvolavajici se kazdych 
1.758ms a pak preruseni od serioveho portu, kde se komunikuje pres 
terminal rychlosti 115200bps.

Problem je, ze v preruseni od casovace se provadi pomerne slozite nejake 
pocitani s doublewordama, longintama a proste to pomerne trva. Bohuzel 
to nejsem schopnej presunout "na pozdeji" do main smycky, protoze 
vysledky jsou mimojine vykon a potrebuji incrementovat pocitadla 
energie. Vypocty jsem se snazil maximalne optimalizovat. Bohuzel tim, ze 
to trva se obcas prehlidne prichozi prikaz z terminalu...pokud s tim 
komunikuje clovek neni to az tak problem...maximnalne poslete prikaz 
znovu. Jenze ted jsem si k tomu pripojil ESP32 kam chci naprogramovat 
webserver s nejakym gui a i kdyz se snazim to nejak osetrit...treba kdyz 
neprijde odpoved tak prikaz zopakovat...neni to uplne idealni.

Dival jsem se do tabulky priorit (PIC18F26K42) a preruseni od RX by melo 
mit vyssi prioritu nez preruseni od casovace...to je asi ok, ale 
neexistuje moznost, ze by se vyskocilo z preruseni timeru do preruseni 
od RX a pak zase navrat do preruseni od timeru?

Ano uvedomuji si, ze by asi bylo reseni si v timeru nahodit jen priznak, 
ze se ma obsluhovat rizeni vykonu, ale mam trochu strach, ze mi to bude 
vandrovat s tim pocitanim...takze zatim se k tomu nechci uchylit dokud 
nevycerpam veskerou nadeji, ze jsem neco prehlidnul.

RV


Další informace o konferenci Hw-list