Собственно решил побаловаться с ЦАПом в Xmega.
Код
#include <avr/io.h>
volatile int Voltage = 0x7F;
void dac_init()
{
DACB.CTRLC = ( DACB.CTRLC & ~DAC_REFSEL_gm) | DAC_REFSEL_AVCC_gc; // Use AVCC as Voltage Reference
DACB.CTRLB = ( DACB.CTRLB & ~DAC_CHSEL_gm ) | DAC_CHSEL_SINGLE_gc; // Use Single Conversion Mode
DACB.CTRLA = DAC_CH0EN_bm | DAC_ENABLE_bm;
}
void DACB_out(int Voltage)
{
DACB.CH0DATA = Voltage;
while (!DACB.STATUS & DAC_CH0DRE_bm);
}
void dac_init();
void DACB_out(int Voltage);
int main(void)
{
dac_init();
while(1)
{
DACB_out(Voltage);
}
}
volatile int Voltage = 0x7F;
void dac_init()
{
DACB.CTRLC = ( DACB.CTRLC & ~DAC_REFSEL_gm) | DAC_REFSEL_AVCC_gc; // Use AVCC as Voltage Reference
DACB.CTRLB = ( DACB.CTRLB & ~DAC_CHSEL_gm ) | DAC_CHSEL_SINGLE_gc; // Use Single Conversion Mode
DACB.CTRLA = DAC_CH0EN_bm | DAC_ENABLE_bm;
}
void DACB_out(int Voltage)
{
DACB.CH0DATA = Voltage;
while (!DACB.STATUS & DAC_CH0DRE_bm);
}
void dac_init();
void DACB_out(int Voltage);
int main(void)
{
dac_init();
while(1)
{
DACB_out(Voltage);
}
}
По моим задумкам на PORTB.2 , должно быть пол питания, а его нет.
Подскажите пожалуйста где я прокололся)