Komma igång med FRDM kl46z del 4 - ADC & DAC (3 / 3 steg)
Steg 3: Skriva ett program
I slutet ska jag visa dig komplett program. Jag lägger till växlar SW3 för DAC och SW1 för ADC. När inte heller den ADC eller DAC är körs på LCD "på" skrivs ut. Flaggan används för att kontrollera vilken switch trycks.
/*
för: instructables
periferin: DAC, ADC, TSD, LCD. Lysdioder, växlar
författare: kubavit
*/
#include "mbed.h"
#include "SLCD.h"
#include "tsi_sensor.h"
Analog adc0(PTE20);
AnalogOut dac0(PTE30);
SLCD lcd;
DigitalOut led(LED1);
DigitalOut led2(LED2);
DigitalIn keyADC(SW1);
DigitalIn keyDAC(SW3);
TSIAnalogSlider reglaget (PTB16, PTB17, 100);
uint8_t flagg.
uint8_t check_key(void);
uint8_t show_title;
void adc_programme(void);
void dac_programme(void);
int main)
{
LED = led2 = 1; stänga av lysdioder
LCD.printf ("på");
medan (sant)
{
LCD. CharPosition = 0;
IF(check_key() == 2) / / om SW3 tryckte
{
dac_programme(); köra DAC
}
IF(check_key() == 1) / / om SW1 tryckte
{
adc_programme(); köra ADC
}
wait(0.2); dröjsmål 200ms
}
}
uint8_t check_key(void)
{
om (! keyADC)
{
Flagga = 1;
show_title = 1;
}
om (! keyDAC)
{
flagga = 2;
show_title = 2;
}
returnera flagg.
}
void adc_programme(void)
{
IF(show_title == 1) / / visar endast när ADC programmet startas
{
LED2 = 1;
LCD.Clear();
LCD.printf ("ADC");
wait(2);
show_title = 0;
}
LCD.printf ("%1.2fv", adc0.read()*3.3); flyttal värde x.xx
LED =! ledde;
}