Спасибо, я рад любому совету, в любом случае я к ним отношусь как к учебному материалу и иду так сказать "от обратного", пытаюсь разобраться в логике работы, сравнить со своими вариантами, которые не работали так, как надо.ARV писал(а):вопрос лишь в том, поможет ли использование готового кода вам чему-то научиться, или нет...
Мелкие вопросы по МК и ПЛИС.
- Digital
- Открыл глаза
- Сообщения: 78
- Зарегистрирован: Сб сен 13, 2008 16:23:09
- Откуда: Kaluga
- Контактная информация:
Re: Различные мелкие вопросы
- Реклама
- Digital
- Открыл глаза
- Сообщения: 78
- Зарегистрирован: Сб сен 13, 2008 16:23:09
- Откуда: Kaluga
- Контактная информация:
Re: Различные мелкие вопросы
а можно поподробнее. не понял, где массив обнуляется, в этой строке data[j]=data[j]<<1;?ARV писал(а):P.S. в приведенном ранее примере функции send_data имеется одна неприятная особенность - после того, как эта функция отработает, ваш массив окажется обнуленным. так что будьте осторожнее, следуя советам, которые вам дают добрые люди
Последний раз редактировалось Digital Пт дек 05, 2008 16:48:04, всего редактировалось 2 раза.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18547
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Различные мелкие вопросы
даDigital писал(а):а можно поподробнее. не понял, где массив обнуляется, в этой строке data[j]=data[j]<<1;?ARV писал(а):P.S. в приведенном ранее примере функции send_data имеется одна неприятная особенность - после того, как эта функция отработает, ваш массив окажется обнуленным. так что будьте осторожнее, следуя советам, которые вам дают добрые люди
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Digital
- Открыл глаза
- Сообщения: 78
- Зарегистрирован: Сб сен 13, 2008 16:23:09
- Откуда: Kaluga
- Контактная информация:
Различные мелкие вопросы
а при таком коде, после обнуления, массив каждый раз переинициализировать надо будет, т.е. дважды прописывать его в программе получится?
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18547
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Различные мелкие вопросы
при каком - таком?Digital писал(а):а при таком коде, после обнуления, массив каждый раз переинициализировать надо будет ?
при моем - не надо, при том, что был ранее - сами прикиньте... может, вам и надо после первого вывода нули там иметь
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
-
Chasm
- Родился
- Сообщения: 4
- Зарегистрирован: Вс ноя 09, 2008 09:48:31
- Откуда: Братск, Иркутская обл.
- Контактная информация:
Различные мелкие вопросы
Приветствую специалистов. У меня такой вопрос. Только начал занимать микроконтроллерами. Спаял небольшую схемку. Сделал подключение к LPT (5 проводков для прошивки) и к COM (через MAX232 TXD,RXD). Написал небольшую прогу в CVAVR, зашил в микроконтроллер (ATMEGA8), всё работает. Но теперь мне по учёбе надо написать программу на ассемблере. Решил в AVR STUDIO, но там прошивка только через COM и USB. Вопрос: в какой проге можно писать на ассемблере и зашить эту прогу в микроконтроллер через LPT. Заранее спасибо.
Re: Различные мелкие вопросы
На ассембелере можно продолжать писать в студии, после компиляции она генерирует hex файл для прошивки флеша контроллера и eep файл для прошивки еепрома контроллера. Прошить эти файлы можно любым программатором, в том числе и 5 проводков. Консольный программатрор AvReal (сам не пробовал, но хвалят), понипрогом наверное можно, может быть и CVAVR может прошить хекс и ееп если ему явно указать на них.Chasm писал(а):Приветствую специалистов. У меня такой вопрос. Только начал занимать микроконтроллерами. Спаял небольшую схемку. Сделал подключение к LPT (5 проводков для прошивки) и к COM (через MAX232 TXD,RXD). Написал небольшую прогу в CVAVR, зашил в микроконтроллер (ATMEGA8), всё работает. Но теперь мне по учёбе надо написать программу на ассемблере. Решил в AVR STUDIO, но там прошивка только через COM и USB. Вопрос: в какой проге можно писать на ассемблере и зашить эту прогу в микроконтроллер через LPT. Заранее спасибо.
- tembl4
- Открыл глаза
- Сообщения: 53
- Зарегистрирован: Вт янв 15, 2008 21:18:36
- Откуда: МО г.Фрязино-Щёлково
- Контактная информация:
питание мне действительно не понадобились)и так прошивает)BerZerK-ku писал(а):Получается, что для работы с данной микросхемой вообще питания не надо?! Раз светодиоды горят, то глядишь и TTL уровни прокатят. Надо проверитьAheir писал(а):Насколько я вижу, теоретически это возможно, поскольку светодиодами, как я понимаю, по сути управляют сигналы LPT-порта (кроме того, что на питании). Видимо, паразитного питания от логической "1" порта хватает для зажигания светодиодов. Ну а монтаж проверьте, конечно, повнимательнее.![]()
Скорее всего проблема действительно в неправильном монтаже.
выкладываю сей ужас! тока не ржыте
- Вложения
-
- IMAGE_037еее.JPG
- прог
- (198.56 КБ) 357 скачиваний
-
- IMAGE_040гггг.JPG
- прог2
- (198.7 КБ) 459 скачиваний
-
- IMAGE_050ггге6.JPG
- прог3
- (179.77 КБ) 347 скачиваний
-
- IMAGE_04еее1.JPG
- Отладочная плата)))
- (159.53 КБ) 455 скачиваний
-
- IMAGE8_044.JPG
- Отладочная плата)))
- (184.38 КБ) 422 скачивания
-
BerZerK-ku
- Мучитель микросхем
- Сообщения: 492
- Зарегистрирован: Вт июл 22, 2008 08:10:54
Re: Различные мелкие вопросы
Действительно, будьте осторожныARV писал(а):P.S. в приведенном ранее примере функции send_data имеется одна неприятная особенность - после того, как эта функция отработает, ваш массив окажется обнуленным. так что будьте осторожнее, следуя советам, которые вам дают добрые люди
Код: Выделить всё
for(; ch>0; ch<<=1) {
if (data[j] & ch) PORTD.0=1;
else PORTD.0=0;
}
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18547
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Различные мелкие вопросы
в качестве примечания: я не пользуюсь CVAVR и говоря о массиве исходил из принципа Си - все переменные в ОЗУ. А если этот массив во флэш - тогда обнулить не выйдет, это точноBerZerK-ku писал(а):Действительно, будьте осторожныВаш массив используя выше приведенные примеры не обнулить.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- sheva_s
- Грызет канифоль
- Сообщения: 256
- Зарегистрирован: Пт апр 27, 2007 14:32:48
- Откуда: Украина Кривой Рог
- Контактная информация:
Возник вопрос как правильно и экономно для программы организовать опрос и обработку 3 кнопок, кнопки подключены к 1 порту, опрос происходит в прерывании таймера с частатой 400 гц. пишу в кодвижен.
Пробывал считать состояние порта и присвоить его переменной потом эту переменную в основной программе прогнать через оператор switch-case и путем сравнения узнать какая кнопка была нажата невыходит.
Подскажите как правильно сделать.
Пробывал считать состояние порта и присвоить его переменной потом эту переменную в основной программе прогнать через оператор switch-case и путем сравнения узнать какая кнопка была нажата невыходит.
Подскажите как правильно сделать.
Прикольно, ну конечно, зачем же читать документацию. Я вам советую начать даже не с темы про фьюзы, а с даташита. А вообще ситуация напоминает цитату на баше, приведу на память "Последовательность: Экспиримент>Пипец>Чтение документации, даже из толковых админов тяжело выбить" (c) баш.Kenny писал(а):Контроллер Attiny2313, чето напортачил с фюзами в описании управляющего бат файла и теперь 2 трупика(( Как их оживить? Программатор byteblaster. Не посылайте , плиз , в тему про фузы, ато 18 страниц читать неохота
П. С. Да простят меня модераторы за голимый флуд.
Меньше эмоций. Во первых, чтобы знать как вам помочь необходимы симптомы. Во-вторых количество прошитых контроллеров ни о чем не говорит, есть люди, которые их тысячами прошивают и не разбираются в них ни капли. По делу попробуйте клок подать внешний (герц так на 600), , при этом прошивать (ну в смысле попробовать фьюзы сменить) тоже нужно на очень (герц 150) низкой частоте.Kenny писал(а):фак, шо за народ пошел? все ставят себя выше других и пытаются всех опустить!Я этих контроллеров уже штук 30 прошил,и с пол года вообще ниче не собирал! Уже не помню шо ему нада, а если тяжело написать содержательный ответ - то просьба вообще ничего не писать! П.С. раньше тут атмосфера была лучше
- sheva_s
- Грызет канифоль
- Сообщения: 256
- Зарегистрирован: Пт апр 27, 2007 14:32:48
- Откуда: Украина Кривой Рог
- Контактная информация:
НЕУЖЕЛИ НИКТО НЕЗНАЕТ проект стоит немогу сам приодолеть это.sheva_s писал(а):Возник вопрос как правильно и экономно для программы организовать опрос и обработку 3 кнопок, кнопки подключены к 1 порту, опрос происходит в прерывании таймера с частатой 400 гц. пишу в кодвижен.
Пробывал считать состояние порта и присвоить его переменной потом эту переменную в основной программе прогнать через оператор switch-case и путем сравнения узнать какая кнопка была нажата невыходит.
Подскажите как правильно сделать.
ды простит модератор за цитирование своих постов.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18547
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
попробуйте так:
в основном цикле время от времени проверяйте значение KEY и, если оно не равно нулю, обрабатывайте ее значение, как код нажатых кнопок (каждая кнопка - бит)
P.S. Писал сгоряча, возможно, где-то напортачил. тем более что писать в форуме код очень неудобно. главная идея: в прерывании смотрим на пины кнопок. если обнаруживаем, что есть нажатие, то, смотрим в переменную oldkey, которая хранит ПРЕДЫДУЩЕЕ нажатое состояние. если текущее состояние совпадает с предыдущим, значит как минимум 1/400 секунды кнопка нажата - можно вернуть этот код (так давим дребезг). если текущее не равно предыдущему - запоминаем текущее, как предыдущее, но при этом значение KEY не меняем, считая, что еще не ясно - вдруг дребезг? если ничего не нажато - обнуляем KEY.
Код: Выделить всё
volatile unsigned char KEY = 0; // глобальная переменная, содержащая код нажатой кнопки
void interrupt... {// дальше как там ваше прерывание зовется
static unsigned char oldkey = 0;
unsigned char tmp;
tmp = PIND; // здесь идет опрос порта
// лишние биты надо маскировать и инвертировать (для удобства)
tmp = ~(tmp & 0x07); // допустим, кнопки подключены к трем младшим разрядам
if(tmp){
// только если код нажатой кнопки не ноль (т.е. хоть что-то нажато
if(oldkey){
// если предыдущий код не ноль
if(oldkey == tmp){
// если предыдущее значение равно текущему - установим код кнопки
KEY = oldkey;
}
oldkey = key; // иначе запомним текущее значение
} else {
oldkey = 0;
KEY = 0;
}
}
P.S. Писал сгоряча, возможно, где-то напортачил. тем более что писать в форуме код очень неудобно. главная идея: в прерывании смотрим на пины кнопок. если обнаруживаем, что есть нажатие, то, смотрим в переменную oldkey, которая хранит ПРЕДЫДУЩЕЕ нажатое состояние. если текущее состояние совпадает с предыдущим, значит как минимум 1/400 секунды кнопка нажата - можно вернуть этот код (так давим дребезг). если текущее не равно предыдущему - запоминаем текущее, как предыдущее, но при этом значение KEY не меняем, считая, что еще не ясно - вдруг дребезг? если ничего не нажато - обнуляем KEY.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
-
BerZerK-ku
- Мучитель микросхем
- Сообщения: 492
- Зарегистрирован: Вт июл 22, 2008 08:10:54
А в чем проблемы то? Простейшая операция - присваивание значения переменной + проверка в switch должна работать сразу. Далее можно ввести анти дребезг.sheva_s писал(а):НЕУЖЕЛИ НИКТО НЕЗНАЕТ проект стоит немогу сам приодолеть это.
А вот один из моих вариантов:
- Вложения
-
- Keyboard.rar
- (855 байт) 319 скачиваний


