Например TDA7294

 Форум РадиоКот • Просмотр темы - Формирование случайной импульсной последовательности
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Ср окт 17, 2018 12:11:00



Часовой пояс: UTC + 3 часа [ Летнее время ]


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 76 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Пт дек 08, 2017 20:12:01 
Друг Кота
Аватар пользователя

Карма: 86
Зарегистрирован: Чт сен 12, 2013 01:54:12
Сообщений: 3830
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
Что за FOSC = EC???
Вы от внешнего тактирования работаете?


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Пт дек 08, 2017 20:45:09 
Открыл глаза

Зарегистрирован: Вс май 28, 2017 20:07:32
Сообщений: 57
Рейтинг сообщения: 0
Нет.


Вернуться наверх
 Профиль  
 
JLCPCB, 10 прототипов ПП всего за $2 и 2 дня доставка!

Крупнейший производитель печатных плат в Китае, 300,000+ заказчиков, 10,000+ он-лайн заказов в день.

Рассчитайте цену онлайн:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Пт дек 08, 2017 20:46:52 
Друг Кота
Аватар пользователя

Карма: 86
Зарегистрирован: Чт сен 12, 2013 01:54:12
Сообщений: 3830
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
Тогда зачем вы выбрали внешнее тактирование (вместо внутреннего)?


Вернуться наверх
 Профиль  
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $88 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Второй конкурс по дизайну печатных плат от PCBWay!
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Пт дек 08, 2017 20:49:31 
Открыл глаза

Зарегистрирован: Вс май 28, 2017 20:07:32
Сообщений: 57
Рейтинг сообщения: 0
#pragma config FOSC = INTOSC
Так нужно?

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

Но это не изменяет ситуацию, кнопки все равно работают не так, как я описал в программе.


Вернуться наверх
 Профиль  
 
Более 10 000 000 оригинальных новых компонентов

Поставка электронных компонентов под ваш проект

Комплексные решения поставки электронных компонентов

Сэкономьте $30 при первом заказе на сумму боле $200 (только для посетителей нашего форума)
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Пт дек 08, 2017 20:57:55 
Друг Кота
Аватар пользователя

Карма: 86
Зарегистрирован: Чт сен 12, 2013 01:54:12
Сообщений: 3830
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
По вашей схеме: нажатая кнопка - "0".
По программе: Если на всех входах "1" (кнопки отпущены) - проход программы с зацикливанием на "BCF PORTA, 0x2" (без возврата в начало программы).


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Пт дек 08, 2017 21:08:35 
Открыл глаза

Зарегистрирован: Вс май 28, 2017 20:07:32
Сообщений: 57
Рейтинг сообщения: 0
А почему так?


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Пт дек 08, 2017 21:17:35 
Друг Кота
Аватар пользователя

Карма: 86
Зарегистрирован: Чт сен 12, 2013 01:54:12
Сообщений: 3830
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
Ещё раз: Я не знаю Си, но по факту, у вас:
Код:
01ED  29FB     GOTO 0x1FB
01EE  1D85     BTFSS PORTA, 0x3 ; Если на входе 1, перейти на 01FB
01EF  29FA     GOTO 0x1FA
01FB  1C05     BTFSS PORTA, 0x0 ; Если на входе 1, перейти на 01FD (задержка)
01FC  29EE     GOTO 0x1EE


Добавлено after 2 minutes 55 seconds:
P.S.
Попробуйте задать вопрос в теме "Программирование pic на СИ".


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Пт дек 08, 2017 22:00:09 
Открыл глаза

Зарегистрирован: Вс май 28, 2017 20:07:32
Сообщений: 57
Рейтинг сообщения: 0
В общем, я сделал так:
1. Поменял сопротивления резисторов R1 на R2, а R2 на R1.
2. Изменил сопротивление кнопки в разомкнутом состоянии на 500 МОм.

Теперь кнопки работают так, как должны.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Пт дек 08, 2017 22:11:38 
Друг Кота
Аватар пользователя

Карма: 86
Зарегистрирован: Чт сен 12, 2013 01:54:12
Сообщений: 3830
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
Я говорил по вашей схеме от Пт дек 08, 2017 18:25:00 .


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Пт дек 08, 2017 22:19:16 
Открыл глаза

Зарегистрирован: Вс май 28, 2017 20:07:32
Сообщений: 57
Рейтинг сообщения: 0
Вот я тогда хотел ещё спросить. Функции srand и rand дико едят память микроконтроллера.
Где можно прочитать про то, как сделать функцию с ассемблерной вставкой, в которую я впихну генерацию псевдослучайную генерацию по заданному диапазону?


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Пт дек 08, 2017 22:43:01 
Друг Кота
Аватар пользователя

Карма: 86
Зарегистрирован: Чт сен 12, 2013 01:54:12
Сообщений: 3830
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
Если устроит генератор ПСП и разберётесь с кодом - у меня можете "содрать".


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Сб дек 09, 2017 21:59:29 
Открыл глаза

Зарегистрирован: Вс май 28, 2017 20:07:32
Сообщений: 57
Рейтинг сообщения: 0
В общем, переделал я.
ГСЧ - конгруэнтный линейный метод.
С прерываниями я не разобрался, поэтому, увы, пришлось оставить часть кода неизменной.

Хотел бы только узнать некоторые детали:

1. Как просто можно получить случайное целое число для начального значения, как описано в этом сообщении:

Первое число лично я получаю следующим образом: сразу после подачи питания (определяю по флагам), еще до того момента, когда Си очистит память статических переменных, подсчитываю CRC16 всей памяти, что доступна, ну или заметного её куска. И уже эту CRC использую в качестве стартового для srand. Так как после подачи питания RAM имеет случайное состояние, получается почти настоящая случайность. Во всяком случае получше srand(rand()), что вы предложили.


2. Чему равно 512 Words of Flash Program Memory в байтах?

3. Правильно ли я прикинул алгоритм быстродействия функции задерки (по disassembly listing):

а) Посчитал число строк в функции задержки без учета цикла задержки
б) Посчитал среднее число тактов для всех инструкций без учета цикла задержки
в) Заплакал
г) Посчиитал п. а) и п. б) для инструкций внутри цикла, прибавил ещё примерно 8 тактов (суммарно) за __delau_us(x) и сам цикл фор.
д) Посчитал время выполнение одной операции в микросекунду
е) Составил уравнение: (180 + 80*N)*0.0625 = макс/мин задержка в мкс
Получилось, что N примерно равно 18 и 79998 для мин. и макс. задержки.

В протосе, при моделировании, не нарушаются заданные условия (как показалось).

Вот код:



Вот схема:



Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Вс дек 10, 2017 08:24:19 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Зарегистрирован: Чт дек 28, 2006 09:19:56
Сообщений: 12393
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
SpeedFighter писал(а):
1. Как просто можно получить случайное целое число для начального значения, как описано в этом сообщении
а как написано в этом сообщении - это сложно или по другим причинам не подходит?
SpeedFighter писал(а):
2. Чему равно 512 Words of Flash Program Memory в байтах?
на сколько я могу понять смысл слова word, то 512 words = 1024 bytes
SpeedFighter писал(а):
3. Правильно ли я прикинул алгоритм быстродействия функции задерки
я бы плакал через строку...

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


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Вс дек 10, 2017 08:54:13 
Открыл глаза

Зарегистрирован: Вс май 28, 2017 20:07:32
Сообщений: 57
Рейтинг сообщения: 0
SpeedFighter писал(а):
1. Как просто можно получить случайное целое число для начального значения, как описано в этом сообщении
а как написано в этом сообщении - это сложно или по другим причинам не подходит?


Сложно в понимании, да и примеров я не нашел годных.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Вс дек 10, 2017 09:50:56 
Друг Кота
Аватар пользователя

Карма: 86
Зарегистрирован: Чт сен 12, 2013 01:54:12
Сообщений: 3830
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
SpeedFighter, Признайтесь, кто вас учил тормозить работу контроллера программными задержками?
У вас же есть таймер и вы можете работать по прерываниям....
По уму, обработка "дребезга" делается по системному таймеру не мешая работать другим подпрограммам.
Не понимаю как можно писать программу под конкретный контроллер, не зная его ресурсов.....
:dont_know:
-------------------
/Если изучали построение схем на "логике" с общим тактированием - это может быть лучшей подсказкой для написания программы/


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Вс дек 10, 2017 10:27:06 
Открыл глаза

Зарегистрирован: Вс май 28, 2017 20:07:32
Сообщений: 57
Рейтинг сообщения: 0
Я же говорю, я первый раз в жизни сел и начал кодить для МК.

Я читал про прерывания и тупо не понимаю, куда для моего мк их пихать нужно.


Вернуться наверх
 Профиль  
 
В сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Вс дек 10, 2017 20:01:42 
Друг Кота
Аватар пользователя

Карма: 21
Зарегистрирован: Пн июл 28, 2008 23:12:01
Сообщений: 3216
Рейтинг сообщения: 0
SpeedFighter, Признайтесь, кто вас учил тормозить работу контроллера программными задержками?



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


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Вс дек 10, 2017 20:59:25 
Открыл глаза

Зарегистрирован: Вс май 28, 2017 20:07:32
Сообщений: 57
Рейтинг сообщения: 0
SpeedFighter, Признайтесь, кто вас учил тормозить работу контроллера программными задержками?



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


Я не понимаю, о чем ты, но:

1. Если я не знаю и не понимаю одного метода - сделал так, как смог.
2. Я первый раз в своей жизни писал код для МК!! До этого я даже близко не понимал, как и чего куда пихать нужно.
3. Я не умел читать нормально даташит.

А лабкид - да, использовал, так как на этом сайте раньше других нашел способ установки банальной лог. единицы на выход МК. Откуда я могу знать о качестве информации, если я никогда до этого её не нюхал?!


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Вс дек 10, 2017 21:03:08 
Друг Кота
Аватар пользователя

Карма: 97
Зарегистрирован: Чт янв 10, 2008 23:01:02
Сообщений: 14215
Откуда: Московская область
Рейтинг сообщения: 0
Я читал про прерывания и тупо не понимаю, куда для моего мк их пихать нужно.

Обработка дребезга.
Вам же сказали выше.
Берете TMR0 и делаете на нем прерывания с интервалом примерно 10...30 мс. И в обработчике этого прерывания читаете кнопки. Вот и вся защита.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Формирование случайной импульсной последовательности
СообщениеДобавлено: Пн дек 11, 2017 05:03:07 
Друг Кота
Аватар пользователя

Карма: 86
Зарегистрирован: Чт сен 12, 2013 01:54:12
Сообщений: 3830
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
Я немного по-другому делаю: Так сложилось что, обычно, системный таймер всегда настраиваю на 1mS и, для дискретных мембранных кнопок, я выставляю время срабатывания 5mS и время отпускания 50mS.
По программе - на каждую кнопку один счётчик + два бита ("кнопка нажата" и "факт нажатия"; последний - для передачи в подпрограмму обработки нажатия кнопок).


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 76 ]  На страницу Пред.  1, 2, 3, 4  След.



Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y