This commit is contained in:
2026-06-12 02:55:04 -07:00
commit 30406f4f49
2040 changed files with 571534 additions and 0 deletions

View File

@@ -0,0 +1,87 @@
/* ADCTimertriggerTestmain.c
* Jonathan Valvano
* May 23, 2025
* Derived from adc12_single_conversion_vref_internal_LP_MSPM0G3507_nortos_ticlang
* adc12_single_conversion_LP_MSPM0G3507_nortos_ticlang
* adc12_triggered_by_timer_event_LP_MSPM0G3507_nortos_ticlang
*/
// ****note to students****
// the data sheet says the ADC does not work when clock is 80 MHz
// however, the ADC seems to work on my boards at 80 MHz
// I suggest you try 80MHz, but if it doesn't work, switch to 40MHz
#include <ti/devices/msp/msp.h>
#include "../inc/LaunchPad.h"
#include "../inc/Clock.h"
#include "../RTOS_Labs_common/ADCTimer.h"
volatile uint32_t Data0,Data1,Flag0,Flag1,Timems0,TimeSec0,Timems1,TimeSec1;
void ADC0_IRQHandler(void){ // 1000 Hz
ADC0->ULLMEM.CPU_INT.ICLR = 0x00000100;
Data0 = ADC0->ULLMEM.MEMRES[0];
Flag0 = 1;
Timems0++;
if((Timems0%1000)==0){
TimeSec0++;
GPIOB->DOUT31_0 ^= RED;
}
ADC0->ULLMEM.CTL0 |= 1; // restart
}
uint16_t volt0,volt1; // voltage in mV
int main1(void){
__disable_irq();
Clock_Init80MHz(0);
Timems0 = TimeSec0 = 0;
Flag0 = 0;
LaunchPad_Init();
ADC0_TimerG0_Init(7,ADCVREF_VDDA,5000,8,1);
__enable_irq();
while(1){ /* toggle on sample */
if(Flag0){
Flag0 = 0;
volt0 = (Data0*3300)>>12;
GPIOA->DOUT31_0 ^= RED1;
}
}
}
void ADC1_IRQHandler(void){ // 100 Hz
ADC1->ULLMEM.CPU_INT.ICLR = 0x00000100;
Data1 = ADC1->ULLMEM.MEMRES[0];
Flag1 = 1;
Timems1++;
if((Timems1%100)==0){
TimeSec1++;
GPIOB->DOUT31_0 ^= BLUE;
}
ADC1->ULLMEM.CTL0 |= 1; // restart
}
int main(void){
__disable_irq();
Clock_Init80MHz(0);
Timems0 = TimeSec0 = 0;
Flag0 = 0;
Timems1 = TimeSec1 = 0;
Flag1 = 0;
LaunchPad_Init();
ADC0_TimerG0_Init(7,ADCVREF_VDDA,5000,8,1);
//ADC1 channel 5, PB18, slidepot
ADC1_TimerG8_Init(5,ADCVREF_VDDA,50000,8,0);
__enable_irq();
while(1){ /* toggle on sample */
if(Flag0){
Flag0 = 0;
volt0 = (Data0*3300)>>12;
GPIOA->DOUT31_0 ^= RED1;
}
if(Flag1){
Flag1 = 0;
volt1 = (Data1*3300)>>12;
GPIOA->DOUT31_0 ^= RED1;
}
}
}