Кот в поисках идей
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Лично я не очень понимаю мысль о просторе для программиста... По вашему мнению, в схемках без дисплея этого простора нет? В чем видится этот простор? Лично я вижу неплохие задачки для программиста даже в автомате световых эффектов - знаете, как в китайских гирляндах? Не смотря на кажущуюся элементарность, там есть над чем помозговать 
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Мышонок
- Друг Кота
- Сообщения: 3792
- Зарегистрирован: Чт сен 14, 2006 11:42:09
- Откуда: Обитаю на чердаке
- Контактная информация:
А ведь ARV прав. Планы Бонапартьи, но вы не Наполеон Бонапарт!
Ставьте реальные задачи. В том же мультиметре, например, обработка результатов измерений - дело десятое, прежде необходимо сами измерения произвести. А вот на светодиодных мигалках и надо начинать практиковаться, недаром все учебники по МК именно с них и начинают.
Ставьте реальные задачи. В том же мультиметре, например, обработка результатов измерений - дело десятое, прежде необходимо сами измерения произвести. А вот на светодиодных мигалках и надо начинать практиковаться, недаром все учебники по МК именно с них и начинают.
Память очень интересная штука: бывает так, что запомнишь одно, а вспомнишь другое...
Если коллега Coder представляет из себя обычного прикладного программиста, то сразу что-то писать для МК будет трудно, так как МК это не совсем компьютер. Тут скорее пригодился бы опыт программиста-системщика, так как необходимо представлять как программа взаимодействует с железом.
самый простой пример соединяем две ножки МК. одну делаем выходом, другую входом. записываем в выходной порт единицу, и сразу читаем что у нас на входе другого порта, на который теоретически должна прийти наша единица и... обнаруживаем там большой квадратный нуль! единица там появится только спустя несколько тактов МК.
и таких примеров можно привести много. и многие из них находишь сам, бодаясь с железом. тут уж не до волка с яйцами становится
самый простой пример соединяем две ножки МК. одну делаем выходом, другую входом. записываем в выходной порт единицу, и сразу читаем что у нас на входе другого порта, на который теоретически должна прийти наша единица и... обнаруживаем там большой квадратный нуль! единица там появится только спустя несколько тактов МК.
и таких примеров можно привести много. и многие из них находишь сам, бодаясь с железом. тут уж не до волка с яйцами становится
Я понимаю, что тут не в скорости света делоAbakt писал(а):но даже теоретически единица должна появится не мгновенно а через некоторое время.Кашпо писал(а):на который теоретически должна прийти наша единица
Ну естественно не мгновенно. никто мгновенно её там и не требует.
Команда чтения выполняется не одновременно с записью в порт. А а позже (сколько это в тактах не скажу, так как пишу на СИ).
Я просто тоже довольно прикладной программист, немного занимавшийся раньше электроникой и решивший вспомнить молодость, помахать так сказать паяльником.
Реально на вышеприведённом эффекте я столкнулся когда делал опрос клавиатурной матрицы. Вроде бы с виду всё просто, ан нет.
-
Оne
Для работы с МК хорошо помогает логический склад ума и опыт работы с цифровой логикой. Мы с товарищем пищем на C (CodeVision), писали одну и ту же прогу, то что он обычно пишет так:
У меня выглядит так:
Хотя не всегда это и нужно. Вообщем написание программы, это тоже искусство
Код: Выделить всё
PORTB.0=1;
PORTB.2=1;
PORTB.5=1;
PORTB.7=1;Код: Выделить всё
operand|=0b10100101;
PORTB=oprand;Хотя не всегда это и нужно. Вообщем написание программы, это тоже искусство
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Чевой-то я не понимаю красоты...
этот код изменяет operand путем логического ИЛИ с константой, а затем это все выводит в порт.
"Приятель" изменял биты порта с размазыванием по времени, не задействуя промежуточную переменную.
А- это сначала считывание PortB, потом логическое ИЛИ результата с константой, а потом вывод этого в порт обратно...
Три примера - ВСЕ ПРИНЦИПИАЛЬНО РАЗНЫЕ. Или никто на такие мелочи внимания не обращает? Или я чего-то не понимаю...
Код: Выделить всё
operand |= что-то-там
PortB = operandэтот код изменяет operand путем логического ИЛИ с константой, а затем это все выводит в порт.
"Приятель" изменял биты порта с размазыванием по времени, не задействуя промежуточную переменную.
А
Код: Выделить всё
ProtB |= что-то-там Три примера - ВСЕ ПРИНЦИПИАЛЬНО РАЗНЫЕ. Или никто на такие мелочи внимания не обращает? Или я чего-то не понимаю...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
ARV писал(а):
А- это сначала считывание PortB, потом логическое ИЛИ результата с константой, а потом вывод этого в порт обратно...Код: Выделить всё
ProtB |= что-то-там
что-то-там - это выражение, т.е. может быть и константой а может быть переменной или результат вычисления их комбинации.
Последний раз редактировалось Abakt Пн фев 19, 2007 11:54:42, всего редактировалось 1 раз.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Независимое подключение всех 16 кнопок?! слишком расточительно. Матрица, как и хочет автор, это верное решение. Надо только, наверное, "строки" от "столбцов" матрицы отделить диодами, что ли...
А метод опроса элементарен: подаем единицу на 1-ю строку - смотрим, на какие столбцы она пришла (придет на те, кнопки которых замкнуты), потом подаем на 2-ю строку - и снова смотрим столбцы и т.д. В итоге получаем состояние всех кнопок. В момент подачи сигнала на какую-то строку остальные строки должны быть в Z-состоянии.
Это так, идея на скорую руку, наверное, можно и проще и лучше...
А метод опроса элементарен: подаем единицу на 1-ю строку - смотрим, на какие столбцы она пришла (придет на те, кнопки которых замкнуты), потом подаем на 2-ю строку - и снова смотрим столбцы и т.д. В итоге получаем состояние всех кнопок. В момент подачи сигнала на какую-то строку остальные строки должны быть в Z-состоянии.
Это так, идея на скорую руку, наверное, можно и проще и лучше...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- coder
- Открыл глаза
- Сообщения: 57
- Зарегистрирован: Вт фев 06, 2007 14:09:10
- Откуда: Россия.Пермь
- Контактная информация:
Каждую кнопку на отдельную ногу, эт действительно расточительно!
ARV дело говорит, у меня примерно тоже решение вырисовывалось в голове! Только получается, надо каждую кнопку диодом снабдить.
Можно на какой-нить логике контроллер клавы собрать (16 входов, 2 выхода) последовательный!
Может ещё какие идеи?
ARV дело говорит, у меня примерно тоже решение вырисовывалось в голове! Только получается, надо каждую кнопку диодом снабдить.
Можно на какой-нить логике контроллер клавы собрать (16 входов, 2 выхода) последовательный!
Может ещё какие идеи?
-
Yak
- Первый раз сказал Мяу!
- Сообщения: 39
- Зарегистрирован: Пн ноя 13, 2006 16:42:35
- Откуда: подмосковье
У микрочипа есть апноут. На 1 ножке МК до 99 кажись кнопок. Смысл в том, что на каждую кнопку вешается резистор с возрастающим номиналом, к примеру 100 ом, 120 ом, 140 и т.д. Все эти хрени (кнопка и резюк) соединяются параллельно, точка соединения резисторов - на порт АЦП (c подтяжкой на землю) точка соединения кнопок - на VCC. И опрашиваем ацп, получившийся результат +-2 будет код нужной кнопки. можно нажимать вместе...16 клавиш, матрица 4х4. Если нажата одна клавиша, всё понятно. А как читать клавиатуру, чтоб опредилить все нажатые клавиши в данный момент?
Неа. В Z не советую - глюк будет. Только подтяжка к питанию. А активный уровень - "0". Уже дважды такие клавы делал.В момент подачи сигнала на какую-то строку остальные строки должны быть в Z-состоянии
не в тему: пишу сообщение, звонит курьер, типа халявные образцы принес, а домофон открыть не могу))))) - типа жильцы не пускают, думают разносчик листовок)))))) а я в офисе.... сказал хоть кому отдать)))))