Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Родился
Сообщения: 9
Зарегистрирован: Ср фев 13, 2013 11:47:56

Сообщение uuuu »

код
Последний раз редактировалось uuuu Сб фев 16, 2013 08:47:00, всего редактировалось 1 раз.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20122
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Может, заменить whil-ы на if'ы else-if'ы?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Сообщение a_skr »

uuuu писал(а):вы как будто меня не слышите?
проверяете в железе или симуляторе? На первый взгляд должно работать, но нужны подтягивающие к корпусу резисторы на всех входах. Если их нет, то можно предположить, что при включении на входах вначале низкий уровень, переключатель сразу дает высокий на одном входе, срабатывает нужный while, выставляет нужное значение на выходе, далее входы "подплывают" к логической единице и ни один while уже не сработает.
Можно сделать кнопки (переключатель) с замыканием на корпус, а не на плюс, включить внутреннюю подтяжку к питанию и не ставить внешние резисторы.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

unalex писал(а): проверьте сначала, потом пишите что не так
Ваш код работает так,что светодиод горит только пока нажата кнопка или какой либо выключатель.А uuuu, похоже, нужно чтобы при нажатии переключалось.

uuuu ваш код отлично работает, сейчас проверил в симуляции. Активное положение кнопок- 1.
При совместно включенном состоянии ничего не происходит, и это понятно, так как эти состояния не описаны.

И не нужно одно и то же повторять несколько раз. Лучше нарисуйте схемку сего устройства и приложите инициализацию портов, может где подтяжка включена, а это как раз не описанное состояние.
Я уже помогал делать проект для включения реле в нужной последовательности через нажатие на кнопки плюс-минус, могу приложить.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Аватара пользователя
Сообщения: 424
Зарегистрирован: Сб авг 25, 2007 22:02:05
Откуда: Германия, Viernheim

Сообщение unalex »

uuuu писал(а):вы как будто меня не слышите?вот код:
.....

а вы меня слышите??? мой код делает то же самое в одну строчку!!! и заметьте работает!!!

для тех кто в танке

Код: Выделить всё

while(1)
{
   PORTD = ~(PINB & 0x07);
}
запустите, проверьте, отпишитесь, если не работает смело бросайте в меня камень
Коктейль "Рекурсивный": 20% спирта, 30% воды, 50% коктейля "Рекурсивный"...
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 424
Зарегистрирован: Сб авг 25, 2007 22:02:05
Откуда: Германия, Viernheim

Сообщение unalex »

ну а если вам хочется с костылями, то так

Код: Выделить всё

while(1)
{
if(PINB==0b00000001) //первое положение
{PORTD=0b11111110;}


else if(PINB==0b00000010) //второе положение
{PORTD=0b11111101;}



else if(PINB==0b00000100) //третье положение
{PORTD=0b11111011;}
}

Код: Выделить всё

#define MASK 0x07
while(1)
{
switch(~(PINB&MASK))
{
	case 1:
	//делаем что надо
	break;
	case 2:
	//делаем что надо
	break;
	//...и т.д.
	default:
	//делаем что должно быть по умолчанию
}

}
Коктейль "Рекурсивный": 20% спирта, 30% воды, 50% коктейля "Рекурсивный"...
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

unalex Я ему то же самое в этом сообщении предложил, ему не подходит :))) Нужно чтобы его вариант заработал, он в общем то и работает, только видать железо подвело. Или подтяжка зря включена, как и сказал a_skr , так и происходит.
Контактная информация:
Родился
Сообщения: 9
Зарегистрирован: Ср фев 13, 2013 11:47:56

Сообщение uuuu »

1)вот схема,только ножки индикатора не все задействованы,я ещё не определился,какая ножка порта будет соответствовать ножке индикатора
2)тестирую в proteus
3)unalex,ваш код работает PORTD = ~(PINB & 0x07),при переключении он зажигает новый сегмент,но не тушит старый(до этого включенный)
4)и ещё просьба,можно писать код в двоичной системе,мне так проще оперировать ножками :)) ,а то я в этом деле новичок :?
Последний раз редактировалось uuuu Сб фев 16, 2013 12:49:43, всего редактировалось 1 раз.
Мучитель микросхем
Аватара пользователя
Сообщения: 424
Зарегистрирован: Сб авг 25, 2007 22:02:05
Откуда: Германия, Viernheim

Сообщение unalex »

uuuu
1 повесь к каждой ноге подтягивающий резистор к земле(скорее всего поэтому и не тушится старый)
2 мой пример кода работает, но порт D повторяет что на порте B, если нужно другие ноги зажигать то надо либо переделать, либо пользоваться другими вариантами
Коктейль "Рекурсивный": 20% спирта, 30% воды, 50% коктейля "Рекурсивный"...
Родился
Сообщения: 9
Зарегистрирован: Ср фев 13, 2013 11:47:56

Сообщение uuuu »

заработало! :music: подключил резисторы.всем спасибо большое!
Нашел транзистор. Понюхал.
Сообщения: 172
Зарегистрирован: Пн мар 19, 2012 13:04:11

Сообщение MS24 »

Ребят, а куда нужно подключать выход REF_CLK? У меня атмега64, программатор MKII, написанно что нужно подключить к выводу XTAL1, никак не могу понять, там ведь кварц должен стоять. Подскажите пожалуйста.
Друг Кота
Аватара пользователя
Сообщения: 20122
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Не знаю про ref_clk, откуда вы его взяли? У программаторов обычно sck, подключается к соотв. порту МК spi для программирования.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

REF_CLK - обычно используется для внешнего тактирования прошиваемого микроконтроллера в случае неправильной установки фьюзов. В обычном режиме никуда его подключать не надо.
Ставим плюсы: )
Нашел транзистор. Понюхал.
Сообщения: 172
Зарегистрирован: Пн мар 19, 2012 13:04:11

Сообщение MS24 »

ibiza11 писал(а):REF_CLK - обычно используется для внешнего тактирования прошиваемого микроконтроллера в случае неправильной установки фьюзов. В обычном режиме никуда его подключать не надо.
А в необычном? Я понимаю для чего он используется, я не понимаю куда его подключать. Что бы прошить фьюзы, надо что бы МК тактировался извне, т.е программатором, но куда подключтиь этот вывод, к XTAL 1 к которому подключен кварц?
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Сообщение ChipKiller »

MS24 писал(а):А в необычном? Я понимаю для чего он используется, я не понимаю куда его подключать.
... открою "страшную тайну" - нужно скачать datasheet на AVR и посмотреть на картинку Изображение
Вложения
clk_avr.JPG
(6.22 КБ) 581 скачивание
Нашел транзистор. Понюхал.
Сообщения: 172
Зарегистрирован: Пн мар 19, 2012 13:04:11

Сообщение MS24 »

Ну значит я правильно все подключал? Спасибо большое!!!
Так, надо упорно начинать изучение мат части....
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

uuuu писал(а):4)и ещё просьба,можно писать код в двоичной системе,мне так проще оперировать ножками :)) ,а то я в этом деле новичок :?
Все-таки, если собираетесь и дальше заниматься программированием, учитесь "на лету" понимать шестнадцатиричную запись. Двоичное отображение вне стандартов ANSI C, рано или поздно вы с этим столкнетесь, когда начнете "разбирать" чужие исходники из других систем программирования. Впрочем, "выходцы" из кодвижна уже и там наловчились битовые структуры отображать. Костылями необычайных размеров. :)
С уважением,
Виктор.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

ut1wpr писал(а):заниматься программированием, учитесь "на лету" понимать шестнадцатеричную запись.
Если не на лету, то хотя бы научиться пользоваться научным калькулятором :)))
http://SSMaker.ru/99e08894/
Я себе его на горячие клавиши для быстрого вызова сделал.
Контактная информация:
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Вс окт 17, 2010 11:24:29

Сообщение bars23rus »

день добрый .хочу попробовать работать с плис фирмы xilinx , мне нужно будет указывать задержки ,как это можно сделать? до этого работал с owen logic (программируемое реле)
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

bars23rus писал(а):мне нужно будет указывать задержки
подробнее пожалуйста.
Ставим плюсы: )
Ответить

Вернуться в «Разные вопросы по МК»