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().

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

Popular posts from this blog

DHT11 Time out error using v0.4.1library

Sketch upload fails with Java error (___REMOVE___/bin/avrdude)!

Arduino Uno + KTY81/210 temperature sensor