Формирование случайной импульсной последовательности
-
SpeedFighter
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Вс май 28, 2017 19:07:32
Re: Формирование случайной импульсной последовательности
Так, мужики, давайте разберемся.
Я вот сейчас посмотрел свой код, а именно его часть с кнопками и случайной задержкой.
Ещё посмотрел disassembly listing. Да, возможно, часть со случайной задержкой неоптимизирована, не спорю, НО!
В чем преимущество работы с таймером при опросе кнопок? Я получаю одинаковый результат же!
Вот при случайной задержке да, это неточно - раз и громоздко - два.
Я вот сейчас посмотрел свой код, а именно его часть с кнопками и случайной задержкой.
Ещё посмотрел disassembly listing. Да, возможно, часть со случайной задержкой неоптимизирована, не спорю, НО!
В чем преимущество работы с таймером при опросе кнопок? Я получаю одинаковый результат же!
Вот при случайной задержке да, это неточно - раз и громоздко - два.
- Реклама
- Albert_V
- Друг Кота
- Сообщения: 4119
- Зарегистрирован: Чт сен 12, 2013 00:54:12
- Откуда: ЗаМКАДье. Там, где ЦУП
Re: Формирование случайной импульсной последовательности
Если вас не беспокоит, что когда контроллер "болтается в delay" он больше ничего делать не может - и так сойдёт.SpeedFighter писал(а):...В чем преимущество работы с таймером при опросе кнопок? Я получаю одинаковый результат же!...
-
SpeedFighter
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Вс май 28, 2017 19:07:32
Re: Формирование случайной импульсной последовательности
Не беспокоит, в том ведь и дело.
Я прикинул его работу и подумал, а нужно ли где-то его прерывать, ответ - нет.
Не спорю, если бы я делал что-то сложнее - то так нельзя было бы делать.
Я правильно понял, мой пичок (PIC10F322) не поддерживает внешних прерываний (например, по нажатию кнопки)?
Я прикинул его работу и подумал, а нужно ли где-то его прерывать, ответ - нет.
Не спорю, если бы я делал что-то сложнее - то так нельзя было бы делать.
Я правильно понял, мой пичок (PIC10F322) не поддерживает внешних прерываний (например, по нажатию кнопки)?
- КРАМ
- Друг Кота
- Сообщения: 25259
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Формирование случайной импульсной последовательности
[uquote="Albert_V",url="/forum/viewtopic.php?p=3256353#p3256353"]Я немного по-другому делаю: Так сложилось что, обычно, системный таймер всегда настраиваю на 1mS и, для дискретных мембранных кнопок, я выставляю время срабатывания 5mS и время отпускания 50mS.
По программе - на каждую кнопку один счётчик + два бита ("кнопка нажата" и "факт нажатия"; последний - для передачи в подпрограмму обработки нажатия кнопок).[/uquote]
А что это дает?
Если нужен системный таймер на 1 мс, то в его обработчике еще делается счетчик-делитель. В чем смысл разделять дребезг нажатия и дребезг отпускания?
И зачем все это делать на каждую кнопку? А если это матрица?
Добавлено after 4 minutes 5 seconds:
[uquote="SpeedFighter",url="/forum/viewtopic.php?p=3256379#p3256379"]Я правильно понял, мой пичок (PIC10F322) не поддерживает внешних прерываний (например, по нажатию кнопки)?[/uquote]
Неправильно. В этом контроллере есть ОДНО внешнее тактируемое прерывание (INT) и ЧЕТЫРЕ входа прерываний по изменению состояния порта (IOC).
Тактируемое не вешают на кнопки. Оно никак не поможет с дребезгом. А IOC применяют для вывода контроллера из сна при нажатии кнопок.
По программе - на каждую кнопку один счётчик + два бита ("кнопка нажата" и "факт нажатия"; последний - для передачи в подпрограмму обработки нажатия кнопок).[/uquote]
А что это дает?
Если нужен системный таймер на 1 мс, то в его обработчике еще делается счетчик-делитель. В чем смысл разделять дребезг нажатия и дребезг отпускания?
И зачем все это делать на каждую кнопку? А если это матрица?
Добавлено after 4 minutes 5 seconds:
[uquote="SpeedFighter",url="/forum/viewtopic.php?p=3256379#p3256379"]Я правильно понял, мой пичок (PIC10F322) не поддерживает внешних прерываний (например, по нажатию кнопки)?[/uquote]
Неправильно. В этом контроллере есть ОДНО внешнее тактируемое прерывание (INT) и ЧЕТЫРЕ входа прерываний по изменению состояния порта (IOC).
Тактируемое не вешают на кнопки. Оно никак не поможет с дребезгом. А IOC применяют для вывода контроллера из сна при нажатии кнопок.
-
SpeedFighter
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Вс май 28, 2017 19:07:32
Re: Формирование случайной импульсной последовательности
Вот, пока сделал так, как понял, прерывание для опроса клавиш. Правильно ли? Если нет, то что именно неправильно?
Код:
Вот, НО! Вопрос заключается в том, а как правильно сделать прерывание раз в 10-30 мс?
Как рассуждаю я:
0. Я настроил тактовую частоту генератора на 16 МГц в OSCCON .
1. Таймер TMR0 настроен при этом на 8 МГц
2. При такой частоте, таймер переполнится за 256*(1/8) = 32 мкс
3. Мало, нужно получить 20-30 мс, но я же не смогу получить её, даже с предделителем в 256.
4. Вывод - нужно понижать тактовую частоту в OSCCON до 4х МГц, но не хотелось бы.
Как быть?
Вот скрин из даташита, кому интересно:
Как сделать случайную задержку, т.е. чтобы таймер считал до числа N, которое было определено ранее?
Код:
Спойлер
Код: Выделить всё
// Подключение нужных библиотек
#include <stdio.h> // Стандартная библиотека ввода-вывода
#include <stdlib.h> // Стандартная библиотека контроля
#include <xc.h> // Специализированная библиотека XC8
// Параметры микроконтроллера
#define _XTAL_FREQ 16000000 // Тактовая частота 4 МГц
#define BOUNCE 15 // Время в мс для обработки дребезга
#define CORRMIN 18 // Число итераций в цикле для задержки в 100 мкс
#define CORRMAX 79998 // Число итераций в цикле для задержки в 400000 мкс
// CORR - Correction factor
// Параметры сигнала
#define SIGNAL 30 // Длительность сигнала в мкс
// Обознаение выводов и кнопок
#define START RA2 // Кнопка ПУСК МК
#define STOP RA3 // Кнопка СТОП МК
#define LED RA0 // Вывод на светодиоды
#define GREEN 1 // Сигнал для зеленого светодиода
#define RED 0 // Сигнал для красного светодиода
#define GENERATOR RA1 // Выход генератора
// Настройка МК
#pragma config FOSC = INTOSC // Выбор генератора (внешний/внутренний)
#pragma config BOREN = ON // Сброс при потере напряжения питания
#pragma config WDTE = ON // Включение/выключение сторожевого таймера
#pragma config PWRTE = OFF // Бит разрешения работы таймера включения (PWRTE)
#pragma config MCLRE = OFF // Перезагрузка устройства через MCLR
#pragma config CP = ON // Бит защиты
#pragma config LVP = OFF // Низковольтное программирование
#pragma config LPBOR = ON // Перезагрузка процессора при низкой мощности
#pragma config BORV = LO // Выбор точки отключения (низкая/высокая)
#pragma config WRT = OFF // Защита флеш памяти от записи
// Настройка прерываний
[b]INTCON=0b11100000; [/b] // Настройка прерываний (разрешение глобального прерывания, включение периферийных прерываний, включение прерываня Timer()
[b]OPTION=0b00101000;[/b] // Настройка TMR0 (отключен предделитель TMR0), т.е. таймер работает на частоте 16/2 = 8 МГц
int main() // Главная функция
{
[b] TMR0=0; // Обнуление таймера TMR0[/b]
// Объявление параметров конгруэнтного метода
g_Random[0] = 1;
g_Random[2] = 3;
g_Random[3] = 5;
Prepare(); // Запуск функции подготовки
while(1) // Бесконечный цикл работы
{
if(g_bStat) // Проверка режима
{
LED = GREEN; // Включение зеленого светодиода (вкл МК)
RandomDelay(); // Запуск функции случайной задержки
GENERATOR = 1; // Выставляем лог. 1 на выход генератора
__delay_us(SIGNAL); // Задерживаем лог. 1 на выходе
GENERATOR = 0; // Обнуляем выход генератора
}
else
{
LED = RED; // Включение красного светодиода (выкл МК)
}
}
return 0;
}
// Функция подготовки
void Prepare()
{
TRISA = 0b1100; // Направление работы ножек порта А (вход)
PORTA = 0b0000; // Очистка порта A
OSCCON = (1<<4)|(1<<5)|(1<<6); // Установка IRCF = '111' для частоты в 16 MHz
WPUA&=~((1<<0)|(1<<1)|(1<<2)|(1<<3)); // Отключение WEAK PULL-UP
ANSELA = 0; // Отключение аналоговой части
}
void ButtonInterrupt isr(void) // Прерывание для опроса кнопок
{
[b]if(TMR0IF)[/b] // Проверка переполнения таймера
{
if(!START && STOP && !g_bStat) // Проверка на нажатие клавиши старт
{
__delay_ms(BOUNCE); // Обработка дребезга
if(!START && STOP) // Обработка дребезга
{
g_bStat = 1; // Установка режима МК (вкл)
}
else
{
g_bStat = 0; // Установка режима МК (выкл)
}
}
else if(START && !STOP && g_bStat) // Проверка на нажатие клавиши стоп
{
__delay_ms(BOUNCE); // Обработка дребезга
if(START && !STOP) // Обработка дребезга
{
g_bStat = 0; // Установка режима МК (выкл)
}
}
else if(!START && !STOP && g_bStat) // Защита от дурака
{
__delay_ms(BOUNCE); // Обработка дребезга
if(!START && !STOP) // Обработка дребезга
{
g_bStat = 0; // Установка режима МК (выкл)
}
}
[b]TMR0IF = 0; // Cбрасываем флаг о переполнении[/b]
}
}
Как рассуждаю я:
0. Я настроил тактовую частоту генератора на 16 МГц в OSCCON .
1. Таймер TMR0 настроен при этом на 8 МГц
2. При такой частоте, таймер переполнится за 256*(1/8) = 32 мкс
3. Мало, нужно получить 20-30 мс, но я же не смогу получить её, даже с предделителем в 256.
4. Вывод - нужно понижать тактовую частоту в OSCCON до 4х МГц, но не хотелось бы.
Как быть?
Вот скрин из даташита, кому интересно:
Спойлер

- Реклама
- Albert_V
- Друг Кота
- Сообщения: 4119
- Зарегистрирован: Чт сен 12, 2013 00:54:12
- Откуда: ЗаМКАДье. Там, где ЦУП
Re: Формирование случайной импульсной последовательности
[uquote="КРАМ",url="/forum/viewtopic.php?p=3256832#p3256832"]В чем смысл разделять дребезг нажатия и дребезг отпускания?
И зачем все это делать на каждую кнопку? А если это матрица?
[/uquote]Кнопка, для пользователя, должна сработать максимально быстро, но не с "первого пичка" (который может оказаться импульсной помехой), а собственно "дребезг" я убираю на отпускании кнопки.
Для каждой кнопки: Почти во всех моих изделиях есть возможность входа в некоторые функции по нажатию (и удержанию) нескольких кнопок в определённой последовательности (по аналогии с Ctrl+Alt+Del).
Матричная клавиатура отличается от дискретных кнопок только способом опроса кнопок. Подавление "дребезга" остаётся прежним.
Естественно, если по условию, в любой момент времени может быть нажата только одна кнопка - тогда всё намного проще...
-------------------
С Timer0 максимальное время 16,384mS (FOSC/4/256/256) при тактовой 16MHz.
У PIC10F322 есть ещё Timer2, с которого вы можете получить чуть более 65mS (65,536mS) при тактовой 16MHz.
И зачем все это делать на каждую кнопку? А если это матрица?
Для каждой кнопки: Почти во всех моих изделиях есть возможность входа в некоторые функции по нажатию (и удержанию) нескольких кнопок в определённой последовательности (по аналогии с Ctrl+Alt+Del).
Матричная клавиатура отличается от дискретных кнопок только способом опроса кнопок. Подавление "дребезга" остаётся прежним.
Естественно, если по условию, в любой момент времени может быть нажата только одна кнопка - тогда всё намного проще...
-------------------
Не забывайте, что на таймеры подаётся FOSC/4.SpeedFighter писал(а):Как быть?
С Timer0 максимальное время 16,384mS (FOSC/4/256/256) при тактовой 16MHz.
У PIC10F322 есть ещё Timer2, с которого вы можете получить чуть более 65mS (65,536mS) при тактовой 16MHz.
Таймер всегда даст прерывание при переходе на "0". Перефразируйте задачу: "Надо записать в таймер стартовое значение".SpeedFighter писал(а):чтобы таймер считал до числа N
-
SpeedFighter
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Вс май 28, 2017 19:07:32
Re: Формирование случайной импульсной последовательности
Хорошо, спасибо.
Но я, честно говоря, не понял, в чем преимущество таймера для опроса кнопок в ДАННОЙ программе.
А вот преимущество задержки через таймеры - я вижу, но как сделать задержку от 100 мкс до 400 мс, если таймер TMR2 может только до 65 мс задерживать?
Но я, честно говоря, не понял, в чем преимущество таймера для опроса кнопок в ДАННОЙ программе.
А вот преимущество задержки через таймеры - я вижу, но как сделать задержку от 100 мкс до 400 мс, если таймер TMR2 может только до 65 мс задерживать?
- Albert_V
- Друг Кота
- Сообщения: 4119
- Зарегистрирован: Чт сен 12, 2013 00:54:12
- Откуда: ЗаМКАДье. Там, где ЦУП
Re: Формирование случайной импульсной последовательности
С какой дискретностью (какой шаг) от 100 мкс до 400 мс?
- КРАМ
- Друг Кота
- Сообщения: 25259
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Формирование случайной импульсной последовательности
[uquote="Albert_V",url="/forum/viewtopic.php?p=3257383#p3257383"]Кнопка, для пользователя, должна сработать максимально быстро[/uquote]
Зачем? Реакция человека на подобные события определяется величиной 0,1...0,2 сек.
Кнопка - типичное устройство НЕ реального времени.
[uquote="SpeedFighter",url="/forum/viewtopic.php?p=3257408#p3257408"]Но я, честно говоря, не понял, в чем преимущество таймера для опроса кнопок в ДАННОЙ программе.
А вот преимущество задержки через таймеры - я вижу, но как сделать задержку от 100 мкс до 400 мс, если таймер TMR2 может только до 65 мс задерживать?[/uquote]
Преимущество в "прозрачности" такого алгоритма для остального кода. И отличной переносимости в практически в ЛЮБОЙ код. Делать нужно сразу правильно.
Про задержки.
Таймер генерирует лишь МИНИМАЛЬНЫЙ ДИСКРЕТ времени, а остальное реализуется ПРОГРАММНЫМ счетчиком ВНУТРИ ОБРАБОТЧИКА прерываний от таймера.
Зачем? Реакция человека на подобные события определяется величиной 0,1...0,2 сек.
Кнопка - типичное устройство НЕ реального времени.
[uquote="SpeedFighter",url="/forum/viewtopic.php?p=3257408#p3257408"]Но я, честно говоря, не понял, в чем преимущество таймера для опроса кнопок в ДАННОЙ программе.
А вот преимущество задержки через таймеры - я вижу, но как сделать задержку от 100 мкс до 400 мс, если таймер TMR2 может только до 65 мс задерживать?[/uquote]
Преимущество в "прозрачности" такого алгоритма для остального кода. И отличной переносимости в практически в ЛЮБОЙ код. Делать нужно сразу правильно.
Про задержки.
Таймер генерирует лишь МИНИМАЛЬНЫЙ ДИСКРЕТ времени, а остальное реализуется ПРОГРАММНЫМ счетчиком ВНУТРИ ОБРАБОТЧИКА прерываний от таймера.
-
SpeedFighter
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Вс май 28, 2017 19:07:32
Re: Формирование случайной импульсной последовательности
[uquote="Albert_V",url="/forum/viewtopic.php?p=3257410#p3257410"]С какой дискретностью (какой шаг) от 100 мкс до 400 мс?[/uquote]
Если честно, я не задавался этим вопросом, поэтому встречный вопрос: а какие есть варианты?
[uquote="КРАМ",url="/forum/viewtopic.php?p=3257494#p3257494"][uquote="Albert_V",url="/forum/viewtopic.php?p=3257383#p3257383"]Кнопка, для пользователя, должна сработать максимально быстро[/uquote]
Зачем? Реакция человека на подобные события определяется величиной 0,1...0,2 сек.
Кнопка - типичное устройство НЕ реального времени.
[uquote="SpeedFighter",url="/forum/viewtopic.php?p=3257408#p3257408"]Но я, честно говоря, не понял, в чем преимущество таймера для опроса кнопок в ДАННОЙ программе.
А вот преимущество задержки через таймеры - я вижу, но как сделать задержку от 100 мкс до 400 мс, если таймер TMR2 может только до 65 мс задерживать?[/uquote]
Преимущество в "прозрачности" такого алгоритма для остального кода. И отличной переносимости в практически в ЛЮБОЙ код. Делать нужно сразу правильно.
Про задержки.
Таймер генерирует лишь МИНИМАЛЬНЫЙ ДИСКРЕТ времени, а остальное реализуется ПРОГРАММНЫМ счетчиком ВНУТРИ ОБРАБОТЧИКА прерываний от таймера.[/uquote]
Насчет опроса кнопок:
1. После выполнения функции прерывания, микроконтроллер вернется на какой этап? С того момента, на котором прервался? Даже если был в цикле?
2. Если сделать глобальную переменную и в обработчике прерываний сделать присваивание этой переменной какого-либо числа, то сохранится ли в ней значение?
Если честно, я не задавался этим вопросом, поэтому встречный вопрос: а какие есть варианты?
[uquote="КРАМ",url="/forum/viewtopic.php?p=3257494#p3257494"][uquote="Albert_V",url="/forum/viewtopic.php?p=3257383#p3257383"]Кнопка, для пользователя, должна сработать максимально быстро[/uquote]
Зачем? Реакция человека на подобные события определяется величиной 0,1...0,2 сек.
Кнопка - типичное устройство НЕ реального времени.
[uquote="SpeedFighter",url="/forum/viewtopic.php?p=3257408#p3257408"]Но я, честно говоря, не понял, в чем преимущество таймера для опроса кнопок в ДАННОЙ программе.
А вот преимущество задержки через таймеры - я вижу, но как сделать задержку от 100 мкс до 400 мс, если таймер TMR2 может только до 65 мс задерживать?[/uquote]
Преимущество в "прозрачности" такого алгоритма для остального кода. И отличной переносимости в практически в ЛЮБОЙ код. Делать нужно сразу правильно.
Про задержки.
Таймер генерирует лишь МИНИМАЛЬНЫЙ ДИСКРЕТ времени, а остальное реализуется ПРОГРАММНЫМ счетчиком ВНУТРИ ОБРАБОТЧИКА прерываний от таймера.[/uquote]
Насчет опроса кнопок:
1. После выполнения функции прерывания, микроконтроллер вернется на какой этап? С того момента, на котором прервался? Даже если был в цикле?
2. Если сделать глобальную переменную и в обработчике прерываний сделать присваивание этой переменной какого-либо числа, то сохранится ли в ней значение?
- Albert_V
- Друг Кота
- Сообщения: 4119
- Зарегистрирован: Чт сен 12, 2013 00:54:12
- Откуда: ЗаМКАДье. Там, где ЦУП
Re: Формирование случайной импульсной последовательности
Это надо ТЗ смотреть...SpeedFighter писал(а):...я не задавался этим вопросом, поэтому встречный вопрос: а какие есть варианты?
-
SpeedFighter
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Вс май 28, 2017 19:07:32
Re: Формирование случайной импульсной последовательности
Ну допустим, что на мое усмотрение.
- КРАМ
- Друг Кота
- Сообщения: 25259
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Формирование случайной импульсной последовательности
[uquote="SpeedFighter",url="/forum/viewtopic.php?p=3257733#p3257733"]Насчет опроса кнопок:
1. После выполнения функции прерывания, микроконтроллер вернется на какой этап? С того момента, на котором прервался? Даже если был в цикле?
2. Если сделать глобальную переменную и в обработчике прерываний сделать присваивание этой переменной какого-либо числа, то сохранится ли в ней значение?[/uquote]
1. При выходе из обработчика программа попадет на следующую после прерванной команду. То есть для основного кода прерывания как бы не существуют, при их исполнении выполнение основного кода замирает, а затем восстанавливается ровно с того места на котором произошла остановка.
2. Глобальная переменная измененная в прерывании останется измененной. Но есть несколько другая опасность. Компилятор может проигнорировать часть исходного кода основного цикла, если увидит, что переменная в основном цикле не модифицируется, а так же может произойти ошибка при чтении переменной в основном цикле, если ее разрядность выше разрядности контроллера (прерывание может произойти между чтениями младшей и старшей частями переменной). Поэтому все глобальные переменные, которые модифицируются в прерывании должны при объявлении иметь квалификатор volatile перед типом, например
volatile int count;
Это позволит компилятору избежать генерации ошибочного кода.
1. После выполнения функции прерывания, микроконтроллер вернется на какой этап? С того момента, на котором прервался? Даже если был в цикле?
2. Если сделать глобальную переменную и в обработчике прерываний сделать присваивание этой переменной какого-либо числа, то сохранится ли в ней значение?[/uquote]
1. При выходе из обработчика программа попадет на следующую после прерванной команду. То есть для основного кода прерывания как бы не существуют, при их исполнении выполнение основного кода замирает, а затем восстанавливается ровно с того места на котором произошла остановка.
2. Глобальная переменная измененная в прерывании останется измененной. Но есть несколько другая опасность. Компилятор может проигнорировать часть исходного кода основного цикла, если увидит, что переменная в основном цикле не модифицируется, а так же может произойти ошибка при чтении переменной в основном цикле, если ее разрядность выше разрядности контроллера (прерывание может произойти между чтениями младшей и старшей частями переменной). Поэтому все глобальные переменные, которые модифицируются в прерывании должны при объявлении иметь квалификатор volatile перед типом, например
volatile int count;
Это позволит компилятору избежать генерации ошибочного кода.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18546
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Формирование случайной импульсной последовательности
Какую тему не возьми, все в итоге сведется либо к политике, либо к кнопкам, либо к обсуждению крутости ARM. ведь про случайную последовательность тема же была, при чем тут кнопки, прерывания, DMA?!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- КРАМ
- Друг Кота
- Сообщения: 25259
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Формирование случайной импульсной последовательности
[uquote="ARV",url="/forum/viewtopic.php?p=3258333#p3258333"]при чем тут кнопки, прерывания, DMA?![/uquote]
Про ДМА разговор не идет. По крайней мере тут.
Про прерывания и кнопки разговор идет ровно потому, что автор реализует свое устройство посредством КНОПОК. Про случайную последовательность уже все разобрали.
Правила форума не ограничивают круг обсуждаемых вопросов в топике формулировкой заголовка. Тема обсуждения вольна уходить В ЛЮБУЮ ТЕХНИЧЕСКУЮ СТОРОНУ.
Про ДМА разговор не идет. По крайней мере тут.
Про прерывания и кнопки разговор идет ровно потому, что автор реализует свое устройство посредством КНОПОК. Про случайную последовательность уже все разобрали.
Правила форума не ограничивают круг обсуждаемых вопросов в топике формулировкой заголовка. Тема обсуждения вольна уходить В ЛЮБУЮ ТЕХНИЧЕСКУЮ СТОРОНУ.
Re: Формирование случайной импульсной последовательности
[uquote="ARV",url="/forum/viewtopic.php?p=3258333#p3258333"]Какую тему не возьми, все в итоге сведется либо к политике, либо к кнопкам, либо к обсуждению крутости ARM. ведь про случайную последовательность тема же была, при чем тут кнопки, прерывания, DMA?![/uquote]
Все просто, стареешь вот и брюзжишь.
Делом займись , всяко веселей будет..
Все просто, стареешь вот и брюзжишь.
Делом займись , всяко веселей будет..


