Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
01.02.2009, 00:48
|
|
Частый гость
Регистрация: 01.11.2006
Сообщений: 13
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Неровность фронтов на выходе порта Atmega 8515
Здравствуйте, я программирую микроконтороллер Atmega8515. Мне необходимо генерировать импульсы длинной 1,5мс с частотой 50Гц. Использовать 8-ми разрядный таймер у меня не получается - так как при такой длине импульса частота получается вдвое выше. Поэтому хочу генерировать импульсы на порт ввода/вывода простой программкой
PORTB.1=1;
delay_us(12000);
PORTB.1=0;
delay_us(146600);
Но тут возникает такая неприятность: Если смотреть выходной сигнал на осциллографе, то он выглядит так (см. Рис. 1). А выходной сигнал с таймера выглядит симпатичнее (см. Рис.2). Импульсы на выходе таймера имеют фронты значительно ровнее. Возможно ли как нибудь "выровнять" фронты при генерации импульсов на порт?
-- Прилагается рисунок: --
|
|
|
|
01.02.2009, 01:02
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Выглядит так, как будто вы вместо PORТ используеете DDR. Также у вас случаем не индуктивная нагрузка на этом пине?
На такой частоте как у вас, неровных фронтов просто не должно быть.
Я бы написал так:
DDRB.1 = 1;
for (;
{
PORTB.1=1;
delay_us(12000);
PORTB.1=0;
delay_us(146600);
}
|
|
|
|
01.02.2009, 08:37
|
|
Вид на жительство
Регистрация: 03.06.2007
Сообщений: 368
Сказал спасибо: 3
Сказали Спасибо 59 раз(а) в 52 сообщении(ях)
|
Осциллограф у вас красивый,у меня с некрасивым со следующей программой
/************************************************** ***
Chip type : ATmega8535
Clock frequency : 4,000000 MHz
************************************************** ***/
#include ‹mega8535.h›
#include ‹delay.h›
void main(void)
{
PORTC=0x00;
DDRC=0xFF;
ACSR=0x80;
while (1)
{
PORTC.1=1;
delay_ms(12);
PORTC.1=0;
delay_ms(146.6);
};
}
получилось следующее
-- Прилагается рисунок: --
|
|
|
|
01.02.2009, 09:38
|
|
Гражданин KAZUS.RU
Регистрация: 27.07.2006
Сообщений: 659
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
У вас похоже на осциллографе стоит закрытый вход.
|
|
|
|
01.02.2009, 10:37
|
|
Вид на жительство
Регистрация: 03.06.2007
Сообщений: 368
Сказал спасибо: 3
Сказали Спасибо 59 раз(а) в 52 сообщении(ях)
|
Вы по осциллографам ещё меньше специалист чем я.Если это для вас имеет значение,то вход подключен открытый и позволяет просматривать как постоянную,так и переменную составляющую сигнала.
|
|
|
|
01.02.2009, 11:06
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Re: Неровность фронтов на выходе порта Atmega 8515
Сообщение от Sereg
|
Использовать 8-ми разрядный таймер у меня не получается
|
Попробуйте как у меня написано - как раз 50 Гц - у вас должно получится - http://avr123.nm.ru/z6.htm
==================
рисунок из прошлого поста сам прицепился
-- Прилагается рисунок: --
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
01.02.2009, 11:45
|
|
Гражданин KAZUS.RU
Регистрация: 27.07.2006
Сообщений: 659
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Сообщение от Vov123
|
Вы по осциллографам ещё меньше специалист чем я.Если это для вас имеет значение,то вход подключен открытый и позволяет просматривать как постоянную,так и переменную составляющую сигнала.
|
Я предвидел,что не разобравшись отвечать будете вы.
Мой ответ предназначался автору вопроса,а не вам.
Подобная картинка,не ваша,возможна при наличии разделительного конденсатора,который просто обязан уровнять площади импульса относительно нулевой линии.
Для меня имеет значение.На вашей картинке я посмотрел,что вход стоит открытый.
Кстати ,если вам не лень-поставте закрытый вход и посмотрите,что будет.Только скважность сделайте больше 2.Надеюсь вы знаете,что это такое
|
|
|
|
01.02.2009, 11:48
|
|
Частый гость
Регистрация: 01.11.2006
Сообщений: 13
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Я использую осциллограф через звуковуху - Multiinstrument 3.0. Не могу пока никак разобраться как там поставить открытый вход.
|
|
|
|
01.02.2009, 12:03
|
|
Гражданин KAZUS.RU
Регистрация: 27.07.2006
Сообщений: 659
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Сообщение от Sereg
|
Я использую осциллограф через звуковуху - Multiinstrument 3.0. Не могу пока никак разобраться как там поставить открытый вход.
|
Разбирайтесь.Вторая возможная причина-это убитый вход осциллографа.Если я правильно понял вы сигнал подаете на вход звуковой карты??
Для упрощения дискуссии и выявления закрытости или открытости входа -подайте на вход постоянное напряжение.Если вх открытый-увидите постоянный уровень,если закрытый-линя дернется и вернётся на место.
|
|
|
|
01.02.2009, 12:07
|
|
Частый гость
Регистрация: 01.11.2006
Сообщений: 13
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Спасибо. Сейчас буду разбираться
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:35.
|
|