реклама на сайте
подробности

 
 
5 страниц V  « < 3 4 5  
Reply to this topicStart new topic
> Счетчик импульсов с выводом на 7-ми сегментный индикатор, Помогите, пожалуйста, создать схему
Палыч
сообщение Dec 27 2011, 09:59
Сообщение #61


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Поскольку у Вас таймер "тикает" с частотой 50 Гц (верю Вам на слово), то за 49 сек таймер "натикает" 50 * 49 = 2450 раз. Поэтому:
Код
unsigned int t= 0;

//прерывания таймера Т0 - вывод на индикатор
interrupt [TIM0_OVF] void Timer0Ovf(void)
{
  TCNT0 = 0xb2;
  if(++t >= 2450)
  {
    t=0;
    IND_Conv(imp);
    imp= 0;
  }
  IND_Update();
}


Возникает проблема с неатомарностью изменения переменной imp в функции main. Там, где эта переменная изменяется в main - необходимо обрамить командами запрета и разрешения прерывания.

PS. Другое решение: не трогать переменную imp в обработчике прерывания от таймера, а по истечению 49 сек взвести некий флаг, а уж в main этот флаг анализировать, и, по нему вызывать IND_Conv и сбрасывать imp :
Код
unsigned int t= 0;
volatile char flag= 0;

в main
........
  if(flag)
  {
    flag=0;
    IND_Conv(imp);
    imp= 0;
  }
........
//прерывания таймера Т0 - вывод на индикатор
interrupt [TIM0_OVF] void Timer0Ovf(void)
{
  TCNT0 = 0xb2;
  if(++t >= 2450)  {    t=0; flag= 1;  }
  IND_Update();
}
Go to the top of the page
 
+Quote Post
shadow86
сообщение Jan 4 2012, 20:05
Сообщение #62


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585



Всех с новым годом!!!
Спасибо огромное, Палыч!
Go to the top of the page
 
+Quote Post
muravei
сообщение Jan 12 2012, 12:38
Сообщение #63


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



С МК, конечно, пральнее sm.gif , но можно было не париться, сделать: жд. мульт. -интегр. фильтр- измеритель
Go to the top of the page
 
+Quote Post
shadow86
сообщение Feb 2 2012, 11:59
Сообщение #64


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585



Снова здравствуйте, уважаемые программисты! У меня такой вопрос образовался: если я не хочу применять кварц для тактирования МК, а хочу, чтоб он от внутреннего генератора на 1МГц работал, мне в программе что-либо указывать нужно, или он по умолчанию от него запустится?
Go to the top of the page
 
+Quote Post
XVR
сообщение Feb 2 2012, 15:07
Сообщение #65


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(shadow86 @ Feb 2 2012, 15:59) *
если я не хочу применять кварц для тактирования МК, а хочу, чтоб он от внутреннего генератора на 1МГц работал, мне в программе что-либо указывать нужно
Вам нужно правильным образом прошить фьюзы при програмировании вашей прошивки

Go to the top of the page
 
+Quote Post
shadow86
сообщение Feb 5 2012, 16:40
Сообщение #66


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585



спасибо! буду теперь с этим разбираться..
Go to the top of the page
 
+Quote Post
shadow86
сообщение Mar 19 2012, 00:48
Сообщение #67


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585



Уважаемые форумчане, помогите разобраться с очередным бзиком моего Гейгера. Преобразователь на питание МК из 2.4В в 5В работает идеально: напряжение 5.02В, пульсации не вижу на осциллографе даже при максимальном усилении. На вход МК (РВ4) подаю сформированные подготовленные импульсы с ждущего мультивибратора на к155аг1 (пробовал разные длительности: от 0.1с до 0.1мс), а после заданного промежутка времени и счета на индикатор выводятся какие-то космические значения (как я заметил, кратные 10)!!! которых в принципе быть не может - вместо 11-17 -- 510-820. Как понимать что он считает и как это исправить??? на питании МК стоит 10мк+0.1мк потом дроссель на 10мкГн потом 0.1мк; после преобразователя - 0.1мк+220мк+1500мк. я так понимаю, что по входу идет наводка. как бы ее зашунтировать?
Go to the top of the page
 
+Quote Post
OlegH
сообщение Mar 19 2012, 04:26
Сообщение #68


Частый гость
**

Группа: Свой
Сообщений: 186
Регистрация: 14-01-06
Из: Украина, г.Харьков
Пользователь №: 13 168



Ну так найдите ошибку.... Уменьшите свои 46 секунд до удобного в отладке значения (можно текущее число импульсов сразу выводить на индикацию а не ждать какое-то время) и сымитируйте 1 импульс на счетный вход. Ищите ошибку в программе до тех пор пока поведение не будет адекватным.... Очевидно либо импульс с дребезгом либо программа на один импульс увеличивает счетчик множество раз. А может само число счетчика неправильно формируется для вывода на индикатор (на что косвенно намекает кратность 10)
Go to the top of the page
 
+Quote Post
shadow86
сообщение Mar 19 2012, 05:15
Сообщение #69


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585



Спасибо за совет, Олег! Попробую так.
Go to the top of the page
 
+Quote Post
shadow86
сообщение Mar 19 2012, 08:51
Сообщение #70


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585



Спасибо большое за внимание! разобрался! это не наводка была по входу.. а кривые руки.. при изготовлении платы индикатора отзеркалил 1 и 3 разряд, вот у меня 3-х значные числа и лезли ))).
Go to the top of the page
 
+Quote Post
shadow86
сообщение Mar 25 2012, 17:54
Сообщение #71


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585



А подскажите, пожалуйста, как должен выглядеть текст программы, если я хочу сделать короткий звуковой сигнал с одной из ножек МК, который будет звучать при появлении счетного импульса на входной ножке? Интересует момент формирования звука.

Сообщение отредактировал shadow86 - Mar 25 2012, 17:58
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Mar 25 2012, 19:20
Сообщение #72


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(shadow86 @ Mar 25 2012, 21:54) *
А подскажите, пожалуйста, как должен выглядеть текст программы, если я хочу сделать короткий звуковой сигнал с одной из ножек МК, который будет звучать при появлении счетного импульса на входной ножке? Интересует момент формирования звука.


Вам нужно два счётчика . Счетчик- длительности звучания и счётчик -частота звучания. Второе выбирается из DS на пищалку. Длительность на слух.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
shadow86
сообщение Mar 26 2012, 10:09
Сообщение #73


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585



спасибо за ответ! Бум стараться )
Go to the top of the page
 
+Quote Post

5 страниц V  « < 3 4 5
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 15:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01377 секунд с 7
ELECTRONIX ©2004-2016