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.
RoelA
Resistance is futile (If < 1 Ohm)
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
Henry S.
Moderator
Confucius says chà bù duo. Deze post is niet door ChatGPT gegenereerd. De 2019 CO labvoeding.
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
Henry S.
Moderator
Confucius says chà bù duo. Deze post is niet door ChatGPT gegenereerd. De 2019 CO labvoeding.