??? 06/01/06 19:38 Read: times |
#117555 - Looks like he does like to indent. Responding to: ???'s previous message |
Hello Erik,
Look at Shruthi Kumar code using the Quote text button and you will see he has indented. Regards, Charles Bannister ps. Below is the code with the pre options. ; This program provides an example of how to configure the ADC ; An internal 24500000Hz crystal is used as the system clock source.; ; EQUATES $include (c8051f310.inc) ; Include register definition file. LED EQU P3.3 ; LED on target board ('1' is LED ON) INTCLK EQU 24500000/8 ; Intenal oscillator frequency ; VARIABLES ; ADC data variables ADC_READING EQU 29H; holding register for ADC READING (16-bit) ; 2 Bytes ; STACK STACK SEGMENT IDATA ; declare STACK segment RSEG STACK DS 80h ; reserve 128 bytes for stack ; MACRO DEFINITIONS ; RESET AND INTERRUPT VECTOR TABLE CSEG AT 0 ljmp Main org 2bh ljmp TIMER2_ISR ; TIMER2 OVERFLOW INTERRUPT ; MAIN PROGRAM CODE PM33 SEGMENT CODE ; declare CODE segment RSEG PM33 ; select CODE segment USING 0 ; using register bank 0 Main: anl PCA0MD, #NOT(040h) ; clear Watchdog Enable bit mov SP, #STACK-1 ; init stack pointer clr A ; wait at least 1ms djnz acc, $ ; wait 512us djnz acc, $ ; wait 512u acall Port_IO_Init acall Timer2_Init ; initialize Timer2 setb EA ; enable global interrupts sjmp $ ; spin forever ; MAIN SUBROUTINES ; INTERRUPT VECTORS ; SUBROUTINES Port_IO_Init: ; P0.0 - Unassigned, Open-Drain, Digital ; P0.1 - Unassigned, Open-Drain, Digital ; P0.2 - Skipped, Open-Drain, Analog connected to ; P0.3 - Skipped, Open-Drain, Analog external crystal ; P0.4 - TX0 (UART0), Push-Pull, Digital ; P0.5 - RX0 (UART0), Open-Drain, Digital ; P0.6 - Unassigned, Push-Pull, Digital ; P0.7 - Unassigned, Push-Pull, Digital ; P1.0 - Unassigned, Open-Drain, Digital ; P1.1 - Unassigned, Open-Drain, Digital ; P1.2 - Unassigned, Open-Drain, Digital ; P1.3 - Unassigned, Push-Pull, Digital ; P1.4 - Skipped,Open-Drain,Analog ADC Input connected ; P1.5 - Unassigned, Open-Drain, Digital ; P1.6 - Unassigned, Push-Pull, Digital ; P1.7 - Unassigned, Push-Pull, Digital ; P2.0 - Unassigned, Push-Pull, Digital ; P2.1 - Unassigned, Push-Pull, Digital ; P2.2 - Unassigned, Push-Pull, Digital ; P2.3 - Unassigned, Open-Drain, Digital mov P0MDIN, #0F3h mov P1MDIN, #0EFh mov P0MDOUT, #0D0h mov P1MDOUT, #0C8h mov P2MDOUT, #007h mov P3MDOUT, #01Ch mov P0SKIP, #00Ch mov P1SKIP, #010h mov XBR0, #001h mov XBR1, #040h ret ; Timer2_Init ; This routine initializes Timer3 in 16-bit auto-reload mode SYSCLK/12 as its time base. Exits with Timer2 started and Timer2 interrupts enabled. ; Timer2_Init:SETB TR2 mov TMR2RLL, #020h ; auto-reload value mov TMR2RLH, #0d1h mov TMR2L, #020h ; initial value mov TMR2H, #0d1h SETB ET2 ; Timer2 Run control bit SETB TR2 ; Timer2 interrupt enabled ret TIMER2_ISR:push PSW ; preserve registers push acc CLR LED CLR TF2H ; CLEAR TIMER2 OVERFLOW FLAG SETB AD0EN ; ENABLE ADC ORL REF0CN,#0Ah; select voltage reference and enable ;bias generator mov AMX0P, #004h mov AMX0N, #01Fh ; ADC in single-ended mode P1.4 Analog I/P and GND negative I/P mov ADC0CF,#70H ; Set SAR clock frequency ORL ADC0CF,#04h ; Data in ADC0H:ADC0L registers are left-justified. CLR AD0INT ; CLEAR CONVERSION COMPLETE FLAG SETB AD0BUSY ; Start of conversion JNB AD0INT,$ ; Wait until conversion complete CLR AD0EN ; Disable ADC CLR AD0BUSY anl REF0CN,#11111101b; Turn off Bias Generator mov ADC_READING, ADC0H ; copy MSB of ADC0 result into ; ADC_READING mov ADC_READING+1,ADC0L; copy LSB of ADC result into ; ADC_READING SETB LED TIMER2_ISR_END: pop acc pop PSW reti ; End of file. END For VRef = 3.317 V the value read Left-Justified is FFC0h which corresponds to the value of ADC0H and ADC0L in page 36 of the c8051f31x.pdf document. This means when I set 3.317V = VRef the ADC0H = FFh and ADC0L= C0h but when I set VRef = 1.117V the ADC0H = 4Fh and ADC0L=40h.It should have been ADC0H = 4Eh and ADC0L = 69h. Please can someone explain the reason for this small difference in the value read from ADC0H and ADC0L? |
Topic | Author | Date |
Code for reading ADC using C8051F310r | 01/01/70 00:00 | |
Vref or Vin | 01/01/70 00:00 | |
Please edit you post and ... | 01/01/70 00:00 | |
he did, does just not believe in indenti | 01/01/70 00:00 | |
She | 01/01/70 00:00 | |
Looks like he does like to indent. | 01/01/70 00:00 | |
Thanks for the indentation | 01/01/70 00:00 | |
please check | 01/01/70 00:00 | |
Sorry it was 1.017V and not 1.117V | 01/01/70 00:00 | |
are you sure now that all numbers are co![]() | 01/01/70 00:00 |