Технический форум по робототехнике.
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Reinitialize Timer 0 value
TCNT0=0x06;
// Place your code here
ADCSRA.6 = 1; //Включаем ADC
}
#define ADC_VREF_TYPE 0x00
// ADC interrupt service routine
interrupt [ADC_INT] void adc_isr(void)
{
unsigned int adc_data;
// Read the AD conversion result
adc_data=ADCW;
// Place your code here
//Выводим на ЛСД величину шим
ftoa((ADCW*100/1024), decimals, strADC);
lcd_clear();
lcd_puts(strADC);
lcd_putsf(" ob/min");
OCR1BH=ADCH;
OCR1BL=ADCL;
}
interrupt [ADC_INT] void adc_isr(void) {
unsigned int adc_data;
adc_data = ADCW ; // Read the AD conversion result
OCR1B = adc_data ; // set new PWM
//Выводим на ЛСД величину шим
ftoa(( adc_data * 100/1024), decimals, strADC);
lcd_clear();
lcd_puts(strADC);
lcd_putsf(" ob/min");
}
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Reinitialize Timer 0 value
TCNT0=0x06;
// Place your code here
ADCSRA.6 = 1; //Включаем ADC
}
#define ADC_VREF_TYPE 0x00
// ADC interrupt service routine
interrupt [ADC_INT] void adc_isr(void)
{
unsigned int adc_data;
// Read the AD conversion result
adc_data=ADCW;
// Place your code here
//Выводим на ЛСД величину шим
//ftoa((ADCW*100/1024), decimals, strADC); это не правильно
ftoa((adc_data*100/1024), decimals, strADC);
lcd_clear();
lcd_puts(strADC);
lcd_putsf(" ob/min");
//OCR1BH=ADCH; это не правильно
//OCR1BL=ADCL; и это тоже
OCR1B = adc_data;
}
ZarK117 писал(а):какую величину забивает АЦП в ADCW. В одной из книг написано: ADC = V(на пине)*1024/V(опорное). Как именн связанно ADCW с ADCH:ADCL, какое значение выводиться в ADCW, если на входе будет 1В, 1.5В и т.п.????
DDRD = 0x40; // назначаем все линии порта D на вход, кроме PD6
PORTD = 0xbf; // подключаем внутренние нагрузочные резисторы, кроме PD6
DDRD = 0x4A; // назначаем все линии порта D на вход, кроме PD7
PORTD = ?; // подключаем внутренние нагрузочные резисторы, кроме PD6
DDRD = (1<<7); // назначаем все линии порта D на вход, кроме PD7
PORTD = ~(1<<6); // подключаем внутренние нагрузочные резисторы, кроме PD6
DDRD = (1<<PD7); // назначаем все линии порта D на вход, кроме PD7
PORTD = ~(1<<PD6); // подключаем внутренние нагрузочные резисторы, кроме PD6
DDRD = (1<<PD7); // назначаем все линии порта D на вход, кроме PD7
PORTD = ~(1<<PD7); // подключаем внутренние нагрузочные резисторы, кроме PD7
// таблица вероятностей для выбора направления движения, исходя
// из текущего направления движения.
unsigned char p[9][9] = {
{10,20,30,40,50,60,70,80,90},
{5,15,25,35,45,55,65,75,95},
{1,2,3,4,5,6,77,88,99},
{1,2,3,4,5,6,66,77,99},
{20,60,20,20,50,70,100,100,100},
{35,31,32,33,74,93,96,99,99},
{36,31,32,68,77,70,44,6,17},
{17,48,59,59,59,59,59,95,100},
{10,40,55,65,56,77,17,49,100},
};
Master писал(а): у меня вопрос, нужно ведь правильно подключить к XTAL1