Compare commits

..

No commits in common. "d964a92748ddf987757f5f6263d575e4259f05fe" and "f11cea27a49729578310b1d932275f80a6e3edae" have entirely different histories.

1 changed files with 7 additions and 8 deletions

15
main.c
View File

@ -36,7 +36,7 @@ int main(void) {
void PortF_Init(void) { void PortF_Init(void) {
SYSCTL_RCGCGPIO_R |= (1U << 5); // Enable clock for Port F // SYSCTL_RCGC2_R |= 0x00000020; SYSCTL_RCGCGPIO_R |= (1U << 5); // Enable clock for Port F // SYSCTL_RCGC2_R |= 0x00000020;
// while ((SYSCTL_PRGPIO_R & (1U << 5)) == 0); // Wait for Port F to be ready while ((SYSCTL_PRGPIO_R & (1U << 5)) == 0); // Wait for Port F to be ready
GPIO_PORTF_DIR_R |= 0x01; // Set PF1 as output GPIO_PORTF_DIR_R |= 0x01; // Set PF1 as output
GPIO_PORTF_DEN_R |= 0x01; // Enable digital function for PF1 GPIO_PORTF_DEN_R |= 0x01; // Enable digital function for PF1
@ -47,11 +47,11 @@ void PortF_Init(void) {
void ADC0_Init(void) { void ADC0_Init(void) {
SYSCTL_RCGCADC_R |= 0x01; // Enable ADC0 clock SYSCTL_RCGCADC_R |= 0x01; // Enable ADC0 clock
SYSCTL_RCGCGPIO_R |= 0x10; // Enable clock for Port E SYSCTL_RCGCGPIO_R |= 0x10; // Enable clock for Port E
// while ((SYSCTL_PRGPIO_R & (1U << 4)) == 0); // Wait for Port E to be ready while ((SYSCTL_PRGPIO_R & (1U << 4)) == 0); // Wait for Port E to be ready
GPIO_PORTE_AFSEL_R |= 0x08; // Enable alternate function on PE3 GPIO_PORTE_AFSEL_R |= (1U << 3); // Enable alternate function on PE3
GPIO_PORTE_DEN_R &= ~(1U << 3); // Disable digital I/O on PE3 // GPIO_PORTE_DEN_R &= ~(0x08); GPIO_PORTE_DEN_R &= ~(1U << 3); // Disable digital I/O on PE3
GPIO_PORTE_AMSEL_R |= 0x08; // Enable analog function on PE3 GPIO_PORTE_AMSEL_R |= (1U << 3); // Enable analog function on PE3
ADC0_ACTSS_R &= ~8; // Disable sample sequencer 3 ADC0_ACTSS_R &= ~8; // Disable sample sequencer 3
ADC0_EMUX_R = (ADC0_EMUX_R & 0xFFFF0FFF); // Software trigger for SS3 ADC0_EMUX_R = (ADC0_EMUX_R & 0xFFFF0FFF); // Software trigger for SS3
@ -60,11 +60,10 @@ void ADC0_Init(void) {
ADC0_ACTSS_R |= 8; // Enable sample sequencer 3 ADC0_ACTSS_R |= 8; // Enable sample sequencer 3
} }
uint16_t ADC0_Read(void) uint16_t ADC0_Read(void) {
{
ADC0_PSSI_R = 8; // Start sampling on SS3 ADC0_PSSI_R = 8; // Start sampling on SS3
while ((ADC0_RIS_R & 8) == 0); // Wait for conversion to complete while ((ADC0_RIS_R & 8) == 0); // Wait for conversion to complete
uint16_t result = ADC0_SSFIFO3_R & 0xFFF; // Read 12-bit ADC value uint16_t result = ADC0_SSFIFO3_R & 0xFFF; // Read 12-bit ADC value
ADC0_ISC_R = 8; // Clear the completion flag ADC0_ISC_R = 8; // Clear the completion flag
return result; return result;
} }