Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

как раз проблемма была не с uart а с ацп

Отправлено whale 13 июня 2007 г. 21:44


uart потом уже сдох по непонятной причине.
Вот непонятно, почему-то не реагирует на входное напряжение на ADC0,
все время шлет одинаковое число что-то типа 1023


#include
#include "mega128.h"
#include "math.h"

volatile int i;
volatile char nb=0;
volatile unsigned char Buf_Out[40];
volatile unsigned char flag_out=1;


//************** UART ***************************

#pragma vector=USART0_UDRE_vect
static __interrupt void CompUSART_TX();

//************************************************

__interrupt void CompUSART_TX()
{

nb++;
UDR0 = Buf_Out[nb];

if(nb==1)
{
nb=0;
UDRIE0 = 0;
flag_out = 1;
}

}


//************************************************

void main(void)
{

__disable_interrupt();

DDRF_.bit.bit_0 = 0;
PORTF_.bit.bit_0 = 0;


DDRA_.bit.bit_4 = 1;
DDRA_.bit.bit_5 = 1;
DDRA_.bit.bit_6 = 1;
DDRA_.bit.bit_7 = 1;
DDRA_.bit.bit_3 = 1;

PORTA_.bit.bit_4 = 1;
PORTA_.bit.bit_5 = 0;
PORTA_.bit.bit_6 = 0;
PORTA_.bit.bit_7 = 0;
PORTA_.bit.bit_3 = 1;

//*************** UART **************

UBRR0H = 0;
UBRR0L = 38; // 9600(+)
U2X0 = 0; //double speed mode off
UMSEL0 = 0;
UCSZ02 = 0;
UCSZ11 = 1;
UCSZ10 = 1; //8
UPM10 = 0;
MPCM0 = 0;

RXCIE0 = 1;
UDRIE0 = 1;

RXEN0 = 1;
TXEN0 = 1;

TXCIE0 = 0;

__enable_interrupt();

//**************************************

ADPS = 6; // CLK/64
ADEN = 1;
MUX = 0;

//***************************************

while(1)
{

if(flag_out)
{
if(!ADSC)
{
if((i++)>5000)
{
i=0;

Buf_Out[0]= ADCL;
Buf_Out[1]= ADCH;

ADSC = 1;

nb=0;
flag_out = 0;
UDRIE0 = 1;
UDR0 = Buf_Out[nb];

}
}

}
}


}



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
скольким Омам равен эквивалент двух резисторов по 10 Ом, соединённых параллельно?:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru