Страница 161 из 628
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн фев 28, 2011 21:25:25
Shurf
Собрал на 74HC165 клавиатурку по такой схеме:
программа-обработчик (по таймеру):
Код: Выделить всё
#define KB_ANTIDREB 1
uint8_t i;
uint8_t kb_buff=0;
uint8_t kb_out=0;
KB_PORT &= ~(1<<KB_LOAD); // дергаем LD схемы в ноль - в порт вывода загружаются данные
KB_PORT |= (1<<KB_LOAD); // поднимаем LD
if(KB_PIN&(1<<KB_Q7)) kb_buff|=1; //считываем первый пин (нога D7)
for(i=0;i<7;i++)
{
KB_PORT &= ~(1<<KB_STROBE); // дергаем ножкой строба
KB_PORT |= (1<<KB_STROBE);
kb_buff<<=1; // делаем сдвиг в буферном байте
if(KB_PIN&(1<<KB_Q7)) kb_buff|=1; //считываем последующие пины (D6..D0)
}
// обработка на дребезг
for(i=0;i<8;i++) //в цикле просматриваем kb_buff
{
if(kb_buff&(1<<i)) kb_flags[i]+=1; else kb_flags[i]=0;
if(kb_flags[i]>=KB_ANTIDREB)
{
kb_out |=(1<<i);
kb_flags[i]-=1;
}
}
keyboard = kb_out;
получаю глюк: при одновременном нажатии кнопки 0 и 7 МК считывает все кнопки как нажатые (лог. 1), зажатая кнопка 0 "мерцает", т.е. попеременно считывается то как 0 то как 1.
Не вызвано ли такое поведение подтяжкой кнопок на землю? Как на самом деле правильно проектировать "цифровые" кнопки?
Решил проблему - пятнадцатую ногу микросхемы надо было завести на землю.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт мар 01, 2011 04:13:01
Av4arik
Программатор stk200/300
мк Аttiny2313
вопрос:
Внешний кварц (4МГц) при первом программировании мешать не будет запуску внутреннего генератора? Или нужно убрать пока не переведу на тактирование от внешнего источника?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт мар 01, 2011 07:23:15
AI_Disable
Av4arik писал(а):
Внешний кварц (4МГц) при первом программировании мешать не будет запуску внутреннего генератора?
Не будет.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт мар 01, 2011 11:47:05
Грендайзер
Всем доброго здоровичка

Небольшой вопросик по VHDL, никак не могу понять что за тип данных такой Usigned, и чем он отличается от Std_logic_vector? И ещё вопрос, при указании в программе типа Usingned, там с подключением библиотек какая то замута не понятная, необходимо именно numeric какуюто подключать, можно поподробней?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт мар 01, 2011 18:58:44
Necroteeth
как выглядят индуктивности, что для АЦП используются в атмегах и есть ли их картинки в Sprint Layout?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт мар 01, 2011 23:40:50
sachok
Есть способ сделать програмный сброс (ресет) atmega? (что то похоже на кратковременое заземление пина reset)
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср мар 02, 2011 00:10:25
AI_Disable
sachok, нет, такой возможности нет. Хард ресет ничто не заменит. Но если есть ватчдог, то можно использовать его.
PS: Вопрос уже многократно обсуждался, в следующий раз не поленитесь воспользоваться поиском

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср мар 02, 2011 02:14:27
neon_613
Народ, как узнать что контроллер умер?
у меня есть плата sk-mlpc2368 с контроллером lpc 2368 так вот все работало пока не отвалился стабилизатор напряжения. он отвалился в процессе работы... вот теперь контроллер шьется и читается с памяти то что зашил и можно прочесть версию загрузчика, но он не работает. не подает признаков жизни. он помер?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср мар 02, 2011 08:22:20
КРАМ
AI_Disable писал(а):sachok, нет, такой возможности нет. Хард ресет ничто не заменит. Но если есть ватчдог, то можно использовать его.
PS: Вопрос уже многократно обсуждался, в следующий раз не поленитесь воспользоваться поиском

По моему вопрос стоял о СОФТОВОМ ресете...
Это довольно полезный инструмент программирования...
Конечно плохо, что его нет в системе команд...
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср мар 02, 2011 10:26:56
Wereww
Доброго времени суток ! Помогите с проблемкой - подключил к 8й меге DS1307 - никак не могу прочитать время ( спаяно все идеально - по даташиту - питание 5в и поттяжки по 4,7к на линии, контроллер затактирован на 1Мгц. Пишу на кодвижене - при любом обращении к часам - контроллер "повисает" - что делать незнаю
(Поправка - зависание кончилось - теперь при чтении на первом кругу цикла выдаёт - 165-165-165 - и далее 00:00:80 - и больше ничего...может часы надо каким - либо способом еще и запускать ?..)
Кусочек кода:
Код: Выделить всё
// LCD module initialization
lcd_init(16);
// I2C Bus initialization
i2c_init();
// DS1307 Real Time Clock initialization
// Square wave output on pin SQW/OUT: Off
// SQW/OUT pin state: 0
rtc_init(0,0,0);
lcd_putsf("Initialization..\nPlease wait...");
delay_ms(2000);
while (1)
{
// Place your code here
rtc_get_time(&h, &m, &s);
lcd_clear();
sprintf(time, "%02d:%02d:%02d", h, m, s);
lcd_puts(time);
delay_ms(1000);
};
}
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср мар 02, 2011 12:01:04
Jack_A
Wereww писал(а): больше ничего...может часы надо каким - либо способом еще и запускать ?..)
За давностью точно не вспомню, нужно даташит смотреть, но что есть бит пуска/остановки часов - это совершенно определенно.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср мар 02, 2011 12:22:08
Wereww
Jack_A писал(а):Wereww писал(а): больше ничего...может часы надо каким - либо способом еще и запускать ?..)
За давностью точно не вспомню, нужно даташит смотреть, но что есть бит пуска/остановки часов - это совершенно определенно.
Только просмотрел даташит и полазил по буржуйским сайтам...вобщем конструкция запуска не работает...
Код: Выделить всё
rtc_get_time(&h, &m, &s);
s = 0 << 7;
rtc_set_time(h, m, s);
И еще момент - когда отключаю "подтяжки" - контроллер виснет - подключаю - все "работает" - замерил вольтаж - постоянно на линиях (SDA/SCL) +4в - а также скачки +0,3в в момент передачи видимо (оссцила нет под рукой) - все дело именно в запуске я думаю...хотя есть глубокие сомнения насчёт подтяжек - на некоторых схемах видел и по 10 кОм - но в даташите молчок - только пара формул

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср мар 02, 2011 12:26:48
Gudd-Head
Necroteeth писал(а):как выглядят индуктивности, что для АЦП используются в атмегах и есть ли их картинки в Sprint Layout?
Как вариант, могут быть SMD как резисторы и конденсаторы.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср мар 02, 2011 17:25:33
Jack_A
Может быть, это поможет ?
Что-то картинка не прицепляется. Смысл в том, что по даташиту состояние часов в момент включения не определено. Поэтому при инициализации нужно бит CH установить в 0.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср мар 02, 2011 18:48:37
Грендайзер
Всем доброго здоровичка

Небольшой вопросик по VHDL, никак не могу понять что за тип данных такой Usigned, и чем он отличается от Std_logic_vector? И ещё вопрос, при указании в программе типа Usingned, там с подключением библиотек какая то замута не понятная, необходимо именно numeric какуюто подключать, можно поподробней?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср мар 02, 2011 19:22:41
Wereww
Jack_A писал(а):Может быть, это поможет ?
Что-то картинка не прицепляется. Смысл в том, что по даташиту состояние часов в момент включения не определено. Поэтому при инициализации нужно бит CH установить в 0.
Ставлю, только толку....

Залей картинку...
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср мар 02, 2011 20:25:40
Meteor
Грендайзер писал(а):...не могу понять что за тип данных такой Usigned, и чем он отличается от Std_logic_vector?
Unsigned - тип безнаковых целочисленных данных. В то время как Std_logic_vector- "набор" битовых полей.
Применение обоих обусловлено тем, что не все операции поддержиаются для того или иного типа данных.
Например, необходимо реализовать счетчик и его данные сравнивать с наперед заданным значением выраженным битовым полем.
Применение типа Integer позволит реализовать счетчик, однако сравнивать можно только однотипные выражения. (некорректно сравнивать integer с std_logic_vector)
Для сравнения, необходимо привести типы к одноименным. Данную операцию проще проделать с парой Unsigned и std_logic_vector, нежели приводить integer к unsigned, а затем к std_logic_vector или в обратном направлении.
Более того, записывая преобразование типов в виде std_logic_vector(X), заранее определено, что оба типа имеют размерность n бит. С Integer'ом все не так просто - его размерность выражена диапазоном от 0 до N, где N- число. Опреировать числом не всегда удобно.
И еще, VHDL требует "формализации" представления. Например, корректно будет проведена операция сравнения данных
data1:in std_logic_vector(15 downto 0);
data2:in std_logic_vector(15 downto 0);
if(data1=data2)
....
end if;
И неверно (большинство синтезаторов) обработают выражение
data1:in std_logic_vector(0 to 15);
data2:in std_logic_vector(15 downto 0);
if(data1=data2)
....
end if;
Длина одинакова, но "направленность" разная.
Грендайзер писал(а):
И ещё вопрос, при указании в программе типа Usingned, там с подключением библиотек какая то замута не понятная, необходимо именно numeric какуюто подключать, можно поподробней?
Данный тип данных представлен библиотекой numeric_std (для альтеры). Где находится для ксайлинкса - не знаю.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср мар 02, 2011 20:44:21
Грендайзер
Meteor, спасибо, постоянно мне в ентом нелёгком деле помогаете

Аа то нигде не мог найти нормального описания типов. Вся отечественная литература поголовно и, почти бездумно сдирается нашими "великими мыслителями" с иностранной, а в той, я не особо ориентируюсь, в тех книгах, что нашёл на английском языке, так же пока не встретил подробного описания.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср мар 02, 2011 22:58:38
Jack_A
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт мар 03, 2011 13:01:59
Wereww
Да что такое...немогу запустить часы и все тут...ни на асме ни на си...уже перерыл все сорцы на форуме и всевозможные варианты перелопатил....никак...

i2c программный (portc sda=5 scl=4), как попадаю в цикл - то мёртво намертво нули одни...может ресет подтянуть к питанию или увеличить сопротивления на линиях до 10 кОм ?..
