//
// nanovm/avr/Adc.java
//
/**
* Plugin for NanoVM runtime.
*/
package nanovm.avr;
public class Adc {
// prescaler constants
public static final int DIV2 = 0;
public static final int DIV2A = 1; // no real use for this
public static final int DIV4 = 2;
public static final int DIV8 = 3;
public static final int DIV16 = 4;
public static final int DIV32 = 5;
public static final int DIV64 = 6;
public static final int DIV128 = 7;
// set ADC prescaler
static public native void setPrescaler(int value);
// voltage reference constants
public static final int AREF = 0 << 6;
public static final int AVCC = 1 << 6;
// public static final int RESERVED = 2 << 6; // don't use
public static final int INTERNAL = 3 << 6;
// set voltage reference
static public native void setReference(int value);
// channel constants
public static final int CHANNEL0 = 0;
public static final int CHANNEL1 = 1;
public static final int CHANNEL2 = 2;
public static final int CHANNEL3 = 3;
public static final int CHANNEL4 = 4;
public static final int CHANNEL5 = 5;
public static final int CHANNEL6 = 6;
public static final int CHANNEL7 = 7;
public static final int CHANNELVBG = 14; // VBG (1.23V)
public static final int CHANNELGND = 15; // GND (0V)
// get current ADC value
static public native int getValue(int channel); // get 10 bit value
static public native int getByte(int channel); // get 8 bit value
}