Модераторы: PILOT, ManiaK, Mazzi

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Таймер-счётчик на WinAVR под Mega48 
:(
    Опции темы
kaspersky89
Дата 24.12.2007, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 7.12.2007

Репутация: 1
Всего: 1



Тут пытался колдовать с прерываниями

на INT0 от внешнего положительного импульса происходит прерывание, переменная ROT увеличивается на единицу, а в подпрограмме которая запускается в цикле 
for (;;) {
klapan_on_off();
         }  
в зависимости от числа в переменной ROT устанавливается 1 или 0 на одну из ног порта.

проблема в том что диод на ноге загорается не после пяти прерываний на ноге INT0 а сразу же.


В следствии чего вопрос как настроить таимер на увеличение сётчика по внешнему прерыванию. Из каких регистров считывать значение, как их обнулять. А то информации много, а пока разберусь крыша поедет. smile 
(Покромсайте этот код если кто помочь захочет.)  smile 
*******************************************************************************
#include <avr/io.h>  
#include <avr/interrupt.h> 
#include <avr/stdint.h> 
#include <stdlib.h>
#include <avr/signal.h>
#include <avr/wdt.h>
#include <math.h>
#include <inttypes.h>


void IO_init(void); 
void interrupt_init(void); 
void klapan_on_off(void);


char lecture,out,clock,vcap; 
volatile uint8_t rot;

int main(void) 
{    
rot=0;
   IO_init();       
    interrupt_init(); 
   
   for (;;) {
    klapan_on_off();
    }     

   return(0);    


void IO_init(void) 

   DDRD=0x00;  //set all pin of PORTD as input 
     DDRB=0xFF;  //set all pin of PORTB as output 
   DDRC=0xFF;  //set all pin of PORTB as output 


void interrupt_init(void) 
{    
   EICRA=0x0F; //Настройка прерываний INT0 and INT1 , прерывание происходит при высоком уровне сигнала(лог1)
   EIMSK=0x03;   
   SREG=0x82;   


ISR(INT0_vect) 

 rot++;


ISR(INT1_vect) 

    PORTB=0<<PB1;


void klapan_on_off(void)
{
if (rot==5){
 PORTB=1<<PB1;
 }
}
PM MAIL   Вверх
cardinal
Дата 24.12.2007, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 8
Всего: 99




M
cardinal
Пользуйся тегом "код"!


1. По прерыванию INT1 все правильно происходит? Диод гаснет?
2. Уверен, что дребезга на INT0 нет?


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
kaspersky89
Дата 24.12.2007, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 7.12.2007

Репутация: 1
Всего: 1



Набросал тут схему, и мне кажется с транзистора на INT0 наверно реально дребезг идёт, как мне потделать схему?
user posted image
PM MAIL   Вверх
cardinal
Дата 24.12.2007, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 8
Всего: 99



Посмотри рис. 4.7

И еще как вариант можешь глянуть на рис. 285. Думаю тоже пойдет...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
kaspersky89
Дата 25.12.2007, 03:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 7.12.2007

Репутация: 1
Всего: 1



Кстати в ходе экспириментов возник ещё один вопрос, а экранирует ли кто микруху, а то по моему на входные ноги МК очень сильно действуют наводки, т.е. наверно нужна оптимизированая разводка платы(кратчайшие пути) + постройка входного каскада с учётом этого бага.

У кого какие мысли?
PM MAIL   Вверх
cardinal
Дата 25.12.2007, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 8
Всего: 99



Цитата(kaspersky89 @  25.12.2007,  02:59 Найти цитируемый пост)
а экранирует ли кто микруху

А кто там есть?

А вообще не думаю, лучше проверь четкость импульсов для прерываний...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
kaspersky89
Дата 25.12.2007, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 7.12.2007

Репутация: 1
Всего: 1



Тут попытка сделать входной каскад заработает ли незнаю, но попробовать стоит. По идеи чёткость и устойчивость импульсов должна быть жёсткой до безобразия smile 


user posted image
PM MAIL   Вверх
kaspersky89
Дата 26.12.2007, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 7.12.2007

Репутация: 1
Всего: 1



Наконецто свершилось ЧУДО!!! Поставил защиту от дребезга на двух резисторах и конденсаторе, а также для дополнительной защиты старую микруху 155ЛН2 .  Теперь работает как часы, всё точно и чётко. После определённого количества нажатий происходит нужное мне событие.

ПАНАЦЕЯ ОТ ВСЕХ ПРОБЛЕМ - ПРОСТЕЙШАЯ ЗАЩИТА ОТ ДРЕБЕЗГА!!!

   Смысл защиты от дребезга прост, он фрмирует короткий отрицательный импульс длительностью гдето 7нано или мили секунд (сорри забыл). есть ссылка в этой ветке на описание этой схемы с временными диаграммами. сейчас обьяснять и писать лень.
   

Ещё разбирался с даташитом на Mega48 хорошо что английский неплохо знаю(даже собираюсь в Канаду на подработку свалить) там регистр весьма интересный и подлый smile Status Register-SREG который много чего может подпортить в системе.

внизу привожу схему входного каскада окончательный вариант, буду разрабатывать его под новую плату, так как то что сейчас есть это печатка полностью покоцаная от экспериментов.

И тутже код на WinAVR который на данном этапе полностью функционален.

Большая работа проделана(по крайней мере для меня полного новичка в МК и регистрах), подучил Си-шник, что такое регистры и т.д. 

Всётки приятно както становится от прилива новых знаний, уже чувствуешь себя гением smile , так как смог, и разобрался в проблеме.

Дальше будет больше, Теперь надо разбираться с таймером по переполнению, 16-битный или 8-битный, делитель на 1025, 256 и т.д. Покачто обовсём этом я имею смутное представление , так что надо изучать. Надеюсь до нового года успею всё сделать, иначе после празднованья и веселья наверно умрут последние мозговые клеткки окончательно smile 

user posted image

Добавлено через 4 минуты и 32 секунды
Забыл код добавить

Код

// header file 
#include <avr/io.h>  
#include <avr/interrupt.h> 
#include <avr/stdint.h> 
#include <stdlib.h>
#include <avr/signal.h>
#include <avr/wdt.h>
#include <math.h>
#include <inttypes.h>
#include<avr/sleep.h>

#define F_CPU 1000000UL //1MHz

void IO_init(void); 
void interrupt_init(void); 
void klapan_on_off(void);


char lecture,out,clock,vcap; 
volatile uint8_t rot;

int main(void) 
{    
rot=0;
   IO_init();       
    interrupt_init(); 
   
   for (;;) {
    klapan_on_off();
    }     

   return(0);    


void IO_init(void) 

   DDRD=0x00;  //set all pin of PORTD as input 
     DDRB=0xFF;  //set all pin of PORTB as output 
   DDRC=0xFF;  //set all pin of PORTB as output 


void interrupt_init(void) 
{    
   EICRA=0b00000010; 
   EIMSK=0b00000001;   
   SREG=0b10000000;   //default 82


ISR(INT0_vect) 

rot++;



void klapan_on_off(void)
{
if (rot>5){
 PORTB=1<<PB1;
 }



PM MAIL   Вверх
kaspersky89
Дата 26.12.2007, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 7.12.2007

Репутация: 1
Всего: 1



Меня смущает ещё конденсатор на входном каскаде, будут ли через него проходить импульсы, и зачем он там вообще нужен(просто тупо скопировал из одной схемы)?

Может его вообще убрать?

Я поставил красный фирмовый кондёр WIMA на 0.1mf
PM MAIL   Вверх
cardinal
Дата 26.12.2007, 03:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 8
Всего: 99



Форматируй нормально код, чтобы читался и выбирай правильную подсветку кода!
Цитата(kaspersky89 @  26.12.2007,  00:46 Найти цитируемый пост)
Теперь надо разбираться с таймером по переполнению, 16-битный или 8-битный, делитель на 1025, 256 и т.д.

1024
Цитата(kaspersky89 @  26.12.2007,  01:11 Найти цитируемый пост)
Меня смущает ещё конденсатор на входном каскаде

Думаю объяснение тоже как и здесь
http://electronix.ru/forum/index.php?s=&am...st&p=298189

А вообще: поздравляю! smile 



--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Den64
Дата 26.12.2007, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 6.4.2006
Где: Курск

Репутация: 1
Всего: 2



Первый раз прочитал эту тему.... Както игнорировал всегда... Название наверно неинтересное. Если б было названо: "Устройство для ..." или "Схема таковато устройства".


Цитата

  Меня смущает ещё конденсатор на входном каскаде, будут ли через него проходить импульсы, и зачем он там вообще нужен(просто тупо скопировал из одной схемы)?

Может его вообще убрать?

  Меня вобще смущает вся схема...  Я б поставил 2 RC ФНЧ последовательно и усилитель на одном транзисторе...

  А какие переметры импульсов? (Форму импульсов видел на рисунке)
  И какие параметры катушки зажигания?

Добавлено через 3 минуты и 34 секунды
По идее схема хорошо должна пропускать дребезг а не полезный сгнал...
--------------------
Инагда пишу звуками.
PM WWW ICQ   Вверх
kaspersky89
Дата 26.12.2007, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 7.12.2007

Репутация: 1
Всего: 1



Цитата

Меня вобще смущает вся схема...  Я б поставил 2 RC ФНЧ последовательно и усилитель на одном транзисторе...


Поверь мне, я на экспириментах с фнч по твоей идее спалил пару транзисторов(ставил и транзистор с фнч и наоборот вариантах в 5-ти гдето), изуродовал печатку, а в результате дребезг так и шёл, 

так что единственно рабочий вариант правдо опробованый пока-что только от кнопки это последняя схема входного каскада

А полную печатку первого варианта сейчас делаю , через пару часов скину на эту ветку

Добавлено через 3 минуты и 3 секунды
Цитата

А какие переметры импульсов? (Форму импульсов видел на рисунке)
  И какие параметры катушки зажигания?


Форму импульсов смотри в посте выше там до 300в гдето сигнал с ужасным дребезгом
PM MAIL   Вверх
Lazin
Дата 26.12.2007, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 3
Всего: 154



Можно использовать какой-нить фильтр низких частот, а потом формирователь импульсов (хотя-бы триггер шмидта).
PM MAIL Skype GTalk   Вверх
kaspersky89
Дата 26.12.2007, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 7.12.2007

Репутация: 1
Всего: 1



Ну вот как и обещал базовая простейшая версия, без LED-дисплея? кнопок и т.д.

Надеюсь заработает иначе поедет крыша точно smile   smile   smile  smile 


user posted image
PM MAIL   Вверх
Den64
Дата 26.12.2007, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 6.4.2006
Где: Курск

Репутация: 1
Всего: 2




Цитата

Поверь мне, я на экспириментах с фнч по твоей идее спалил пару транзисторов


  Значит неправильно элементы ращитал...

  Кстати у тебя на выходе конденсатор 220пФ и резистор 3.6к - ФВЧ настроенный на частоту среза  > 3 Мгц по уровню 3 дБ.  Краме дребезга ничего непропустит. Только если у тебя импульсы с частотой 3МГц, то они пройдут.

Цитата

А полную печатку первого варианта сейчас делаю , через пару часов скину на эту ветку
И принципиалку скинь.

  Какей частоты импульсов?


--------------------
Инагда пишу звуками.
PM WWW ICQ   Вверх
Страницы: (4) Все 1 [2] 3 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0842 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.