mix47 (18.05.2007 01:33, просмотров: 1) ответил mix47 на Отладка
вариант2 ;), начал боле мение работать ) <c>
#include <avr/io.h>
void USART_Transmit( unsigned long data)
{
while( !( UCSRA & (1<<UDRE)) );
UDR=data;
}
unsigned char USART_Receive(void)
{
while( !( UCSRA & (1<<RXC)) );
return(UDR);
}
void print (int rez)
{
int hi;
int low;
hi=(rez>>4)&0x0F;
low=rez&0x0F;
if (hi > 9) USART_Transmit('A' + (hi - 10));
else USART_Transmit('0' + hi);
if (low > 9) USART_Transmit('A' + (low - 10));
else USART_Transmit('0' + low);
}
int main(void)
{
unsigned char i;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x08;
i=0;
while(1)
{
//USART_Receive();
ADMUX=i|0xE0;
ADCSRA =(1 << ADEN)|(1 << ADIF)|(1 << ADPS2)|(1 << ADPS1)|(1 << ADPS0)|(1 << ADSC);
while( !(ADCSRA & (1<<ADIF)) );
USART_Transmit('<');
print(ADCL);
print(ADCH);
print(i);
USART_Transmit('>');
ADCSRA=0;
i++;
if (i>=8)
{
i=0;
USART_Transmit(13);
USART_Transmit(10);
}
}
};
</c>
<40D200><80FF01><00D202><00FC03><000004><000005><001C06><C02907>
<00D200><00FF01><C0D102><00FC03><000004><000005><401C06><802907>
<40D200><00FF01><40D202><C0FC03><000004><000005><401C06><C02907>
выводит информацию с ADC0-ADC3 впринцепе похоже на правду ;)
покрайней мере на дествия с акселерометрами и гироскопами реагируют нужные каналы...
ADC4-ADC7 сидят наземле, а мы видем совсем другую картину :/ ,впринцепе нужны будут только ADC0-ADC5, но всеже, почему так ?