Hallo iedereen

Ik heb nu mijn subroutine geschreven voor het inlezen van een spanning van 0 tot 2.5V via de interne ADC van 10 bits.

Nu staat deze waarde opgeslagen in de twee registers ADRESH en ADRESL elk van 8 bits

Mijn vraag is:
Moet ik hier nog verder bewerken of kan ik het nu rechtstreeks naar mijn USART sturen mijn digitaliseerde data en hoe zend ik eerst de loworder byte en daarna de high order byte?

Ik kijk naar een antwoordje uit
Groetjes
Stef

Waar wordt de data heen gestuurd en wat gebeurt er daarna mee?
Je moet in ieder geval denken aan wat synchronisatie-bytes er om heen, zodat de ontvangende kant weet wanneer er wat aan komt.

Je vergeet te vermelden wat voor programmeertaal het is,en of mensen of machines het gaan lezen.

Als voorbeeld in C (sdcc):


unsigned int adcVal =0;
adcVal = (ADRESH<<2) | (ADRESL>>6);
printf_small("Adcval: %i\r\n",adcVal);            

Hallo,

Je spreekt over synchronisatie-bytes zodat de ontangande kant weet wanneer er wat aankomt

Mijn vraag ik programmeer in microC omdat ik dat pakket heb en ook gemengd met assembly

Mijn vraag is hoe programmeer je dat met die synchronisatie bytes en waar kan ik misschien daar voorbeelden vinden, want ik snap nu echt niet wat je bedoeld, want ik zie geen algoritme voor mij hoe dat op te lossen

Ik ga wel alles met interrupts doen en moet ook een mogelijkheid zijn om de verschillende interrupts in die juiste banen te leiden dus werken met prioriteiten

Kan je mij eens een algoritme geven als die digitale data is opgeslagen in de registers ADRESH en ADRESL want ik zie niet in wat je ermee bedoeld

Op school hebben we daar totaal niks van gezien enkel wat instellen van registers en van die zeer kleine programmaatjes

Alle hulp is zeker welkom

Staat toch netjes in de datasheet?

Waar ik vind dat nergens. Ik heb dat hoofdstuk van die UART als 4 keer doorlopen en kan mij geen algoritme voorstellen hoe ik dat zou moeten doen in stappen
Weet dat er testen moet worden gedaan in if en wat repeat until loops gebruiken en dan zit ik nog vast met iets anders:

Ik zou graag de waarde invoeren om een software delay te berekenen:

Gegeven een kristal van 10MHz
En zou graag een delay van 250 ms maken

Mijn oplossing is:

10MHz / 4 = 2.5MHz ==> 0,4µs
Maar verder geraak ik niet heb geen idee wat je nu moet doen?

Groetjes
S

kijk ook bij de ADC.

Hallo

Kan je eens vertellen hoe ik die waarde van die software timer berekend