Суббота, 20.04.2024, 11:55
Микроконтроллерная техника AVR
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Микроконтроллеры » Вопросы по МК » Передача данных с ATmega8 на COM порт ПК
Передача данных с ATmega8 на COM порт ПК
sergx1300Дата: Четверг, 18.03.2010, 15:45 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
Помогите разобраться со скоростью передачи данных от Atmega8 на порт ПК (Rs-232). Запрограммировал АЦП в данном МК. Все работает, только даны паредаються очень медленно . Мне нужно оцифровать частоту 50 герц с как можно большим количеством точек. У меня работает со скоростью около 1000 точек за секунду. Мне нужно около 10000 точек - в этом и собственно проблема. Программу писал в Codevisionavr. Вот сама программа.
Код:
#include <mega8>
#include <delay>
#include <stdio>
#define ADC_VREF_TYPE & 0xff;
interrupt [ADC_INT] void adc_isr(void){
printf("%d ",ADCW); // печатаем в УАРТ значение регистра ADCW
putchar(0x0D); // на новую строку УАРТА
}
void init(void){

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 57600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x0C;

ADMUX=0x0b00000000; // вибираем 0-й канал АЦП
ADCSRA=0x0b10001011; // конфигурация АЦП
#asm ("sei"); // разрешить все переривания
}
void main(void)
{
init(); // визов функции int (инициализация всего)
while(1){
ADCSRA=0b11001011; // включаем непреривное АЦП преобразование
}
}

В проекте использовал скорость 57600 бод посколько ето максымальная скорость сымуляции RS-232 в Proteus. На практеке хочу использовать 115200 бод. Даныє буду слать на растояныє 1-0,5 метра (максимум на 2,5 м).

вполне достаточно и скорости 1000 точек/сек. Но моя задача посложнее. Нужно считать форму сигнала 50 гц максимально точно, вплоть до точного перехода через ноль.
Тоесть мне нужно считать несколько периодов (не болише 3-5) с максималим количеством течек (чтоби увидеть наименьшие импульсы).
В будущем можно сделать цифровой осцилограф.

 
my-avrДата: Среда, 09.06.2010, 15:27 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 79
Репутация: 10
Статус: Offline
sergx1300, хм... со скоростью могут быть проблемы((( Лутше всего взять количиство точек за один перриод и потом через некоторую задержку отправить отчет на ПК.
Недостаток в том что не будет в реальном времени, зато можно реализовать большую точность прибора
 
ВикторДата: Вторник, 07.12.2010, 23:54 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
Добрый день!
Осваиваю передачу данных по COM-порту. Хотел протестировать вашу программу. Я так понимаю, у Вас синус подаётся на вход PC0 и потом через usart идёт в компьютер, верно? Вопрос в том, что Вы делали с железом? Я имею в виду, как подавался синус, черз какой-то буфер или его можно прямо напрямую подавать на ножку? Для реализации обмена, я так понял, чаще всего используют стандартную схему на MAX232. И главный вопрос, каким софтом Вы потом анализировали приходящие данные на компьютер? Заранее спасибо большое за ответ.

Добавлено (07.12.2010, 23:54)
---------------------------------------------
Так, с частью проблем разобрался, нашел в интернете очень удобные программки и решил последнюю проблему (как оказалось, некоторые из схем в интернете приводились для нуль-модемника). Ещё есть разница с MAX232: разные серии-подсерии, отличаются тем, какие конденсаторы надо навешать (0,1 мкФ или 1мкФ). Я, правда, вроде как раз сделал неправильно, но всё равно работает.
Пробовал посылать сообщения, идёт на ура, но обнаружил одну деталь. В приведённом коде написан baudrate 57600. Реально почему-то передаёт 4800??
Теперь пробую тестировать АЦП. Почему-то, что бы я ни делал, контроллер передаёт значение 1023 (импульсы подаю от функционального генератора, 2 В). В чём может быть дело?

 
Форум » Микроконтроллеры » Вопросы по МК » Передача данных с ATmega8 на COM порт ПК
  • Страница 1 из 1
  • 1
Поиск:

Хостинг от uCoz