ADC free running arduino uno
ciao tutti,
ho configurato l'adc 3 per operare in free running, caricando registri nel setup() ma il micro si blocca e si riavvia durante il setup().
che cosa sbaglio?
ho configurato l'adc 3 per operare in free running, caricando registri nel setup() ma il micro si blocca e si riavvia durante il setup().
code: [select]
#include <spi.h>
#include <sd.h>
#include <eeprom.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/wdt.h>
// sd card attached spi bus follows:
// mosi - pin 11
// miso - pin 12
// clk - pin 13
// cs - pin 10
#define pe 2.5
#define vs 5.0
#define a_in a3
#define cs 10
#define p_samples 80
#define r_samples 80
void setup() {
serial.begin(115200);
pinmode(cs, output); pinmode(8, output);
sd_ok=sd.begin(cs);
if(!sd_ok) serial.println(f("!!!sd card not present!!!"));
for(i=0; i<100; i++)
{
delay(1);
p_mbar_zero += pressureacq();
}
p_mbar_zero = p_mbar_zero/100.0; //zero calibration point
i=0;
cli(); // disable global interrupts
//initialize timer1 delay
tccr1a = 0;
tccr1b = 0;
timsk1 = 0;
tifr1 = 0;
tcnt1 = 0;
// timsk1 = (1 << ocie1a); // isr on compare ocr1a top
ocr1a = 8;
//adc
adcsra = 0;
admux = 0;
didr0 |= bit(adc3d); // digital inputs disabled
admux |= bit(mux1) | bit(mux0); // measuring on adc3
adcsra = bit(adps2) | bit(aden) | bit(adate) | bit(adie); // ad-converter on, interrupt enabled, prescaler = 16
adcsrb = 0; // ad channels mux on, free running mode
adcsra |= bit(adsc); // start conversion setting bit 6 (=adsc) in adcsra
sei();
wdt_enable(wdto_1s);
}
che cosa sbaglio?
ciao, mi sembra tu abbia impostato il watchdog 1 secondo. trascorso il secondo il micro si resetta. e' una cosa voluta?
Arduino Forum > International > Italiano > Software (Moderator: leo72) > ADC free running arduino uno
arduino
Comments
Post a Comment