Implemented adc_init
This commit is contained in:
59
src/io.s
59
src/io.s
@@ -1,7 +1,4 @@
|
|||||||
//---------Local variables ----------------------
|
//--------Local definitions ---------------------
|
||||||
.data
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
typedef struct pin_s {
|
typedef struct pin_s {
|
||||||
@@ -108,8 +105,60 @@ end_pin_get:
|
|||||||
|
|
||||||
//No Parameters, No Return value
|
//No Parameters, No Return value
|
||||||
adc_init:
|
adc_init:
|
||||||
|
|
||||||
|
.set GPIO_MODER_MODER0, 3
|
||||||
|
.set GPIO_PUPDR_PUPDR0, 3
|
||||||
|
.set GPIO_Mode_AN, 3
|
||||||
|
.set RCC_APB2Periph_ADC, 0x100
|
||||||
|
.set ADC_Resolution_10b, 0x01000000
|
||||||
|
.set ADC_CR2_ADON, 1
|
||||||
|
.set OFFSET_CR1, 0x4
|
||||||
|
.set OFFSET_SQR1, 0x2c
|
||||||
|
.set OFFSET_CR2, 0x8
|
||||||
|
|
||||||
|
LDR r1, =0x40020400 //r1 = GPIOB
|
||||||
|
|
||||||
|
//GPIOB->MODER &= ~GPIO_MODER_MODER0;
|
||||||
|
LDR r3, [r1, #OFFSET_MODR] //r3 = GPIOB->MODR
|
||||||
|
MOV r2, #GPIO_MODER_MODER0
|
||||||
|
BIC r3, r3, r2 //r3 &= ~GPIO_MODER_MODER0
|
||||||
|
|
||||||
|
//GPIOB->MODER |= GPIO_Mode_AN;
|
||||||
|
MOV r2, #GPIO_Mode_AN
|
||||||
|
ORR r3, r3, r2 //r3 |= GPIO_Mode_AN
|
||||||
|
STR r3, [r1, #OFFSET_MODR] //GPIOB->MODR = r3
|
||||||
|
|
||||||
|
//GPIOB->PUPDR &= ~GPIO_PUPDR_PUPDR0;
|
||||||
|
LDR r3, [r1, #OFFSET_PUPDR] //r3 = GPIOB->PUPDR
|
||||||
|
MOV r2, #GPIO_PUPDR_PUPDR0
|
||||||
|
BIC r3, r3, r2 //r3 &= ~GPIO_PUPDR_PUPDR0
|
||||||
|
|
||||||
|
//GPIOB->PUPDR |= GPIO_PuPd_UP;
|
||||||
|
MOV r2, #GPIO_PuPd_UP
|
||||||
|
ORR r3, r3, r2 //r3 |= GPIO_PuPd_UP
|
||||||
|
STR r3, [r1, #OFFSET_PUPDR] //GPIOB->PUPDR = r3
|
||||||
|
|
||||||
|
|
||||||
|
//RCC->APB2ENR |= RCC_APB2Periph_ADC;
|
||||||
|
LDR r1, =0x40023844 //RCC base: 0x40023800, APB2ENR offset: 0x44
|
||||||
|
LDR r3, [r1] //r3 = RCC->APB2ENR
|
||||||
|
LDR r2, =#RCC_APB2Periph_ADC
|
||||||
|
ORR r3, r3, r2 //r3 |= RCC_APB2Periph_ADC
|
||||||
|
STR r3, [r1]
|
||||||
|
|
||||||
|
//ADC1->CR1 = ADC_Resolution_10b;
|
||||||
|
LDR r1, =0x40012000 //Adc base adress
|
||||||
|
LDR r2, =#ADC_Resolution_10b
|
||||||
|
STR r2, [r1, #OFFSET_CR1]
|
||||||
|
|
||||||
|
//ADC1->SQR1 = 0;
|
||||||
|
MOV r2, #0
|
||||||
|
STR r2, [r1, #OFFSET_SQR1]
|
||||||
|
|
||||||
|
//ADC1->CR2 = ADC_CR2_ADON;
|
||||||
|
MOV r2, #ADC_CR2_ADON
|
||||||
|
STR r2, [r1, #OFFSET_CR2]
|
||||||
|
|
||||||
//TODO: Implement
|
|
||||||
|
|
||||||
end_adc_init:
|
end_adc_init:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user