Страница 404 из 628
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср фев 13, 2013 16:48:34
unalex
uuuu писал(а):как переключаться между тремя портами по сигналу
зачем так много действий, и зачем вообще if, которые ничего не делают?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср фев 13, 2013 19:13:48
misterkuk
Собрал схему и запитал pic16f628a от 3.7 вольт. Но он не запускается от этого напряжения, а от 5в работает на рас. Может что-то программно в нём включать или выставлять? Схемы самой нет, еотил сразу печатку ведь там проц и 3 74HC595 которые зажигают светодиоды. Питание- литий полимерный аккумулятор.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср фев 13, 2013 19:25:49
HHIMERA
Смотрите BOR и Brown-out Reset Voltage... 3.65 Vmin ... 4.35 Vmax ...
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср фев 13, 2013 19:28:44
Faton_11
Добрый вечер!
output reg [length-1:0] adr1_out,//регистр со значением адреса
output wire [length-1:0] adr1_bus,//8-разрядная шина адреса
Значения с шины можно записать в регистр таким образом:
adr1_out<=adr1_bus;
Но мне нужно наоборот, записать данные из регистра на шину. Насколько я понимаю, такая форма записи не приемлема:
adr1_bus<=adr1_out;
Изучаю недавно, подскажите, как можно записать правильно?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт фев 14, 2013 06:35:51
uuuu
unalex писал(а):зачем так много действий, и зачем вообще if, которые ничего не делают?
мне нужно от переключателя с тремя положениями управлять led индикатором,и чтоб на входах была логическая 1 ,а на выходах 0(led индикатор с общим анодом)
на самом деле на портах D будет не по одному нулю,а больше .один ноль -один сегмент индикатора,я ещё не определился какиеножки порта d будут активны,но не в этом загвоздка,как переключаться между ними?if я убрал,получилось так:
while(1)
{
while(PINB==0b00000001)
{PORTD=0b11111110;}
while(PINB==0b00000010)
{PORTD=0b11111101;}
while(PINB==0b00000100)
{PORTD=0b11111011;},но как между ними переключаться то?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт фев 14, 2013 14:56:27
vitalik_1984
честно говоря вообще вопрос какой то непонятный-" как между ними переключаться?"
в вашем случае лучше использовать маску для входа, так как выключатель выдает три единицы по очереди, а вы читаете весь порт.
Маска накладывается так
далее по идее знаки для сегментного индикатора лучше хранить в массиве, сколько знаков, столько и элементов массива
Код: Выделить всё
char show[]={0b00000001, 0b00000010, 0b00000100, 0b00000111}
дальше, чтобы не использовать лишних циклов пишем так
Спойлер
Код: Выделить всё
#define MASK 0b00000111
// объявление переменных
char temp=0,show[]={0b11111110, 0b11111101, 0b11111011, 0b00000111};
//-------------основной цикл
temp =PINB &MASK;
switch (temp){
case (0b00000001): PORTD =show[1];break;
case (0b00000010): PORTD =show[2];break;
case (0b00000100): PORTD =show[3];break;
default : PORTD =show[4] ;
}//end of switch
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт фев 14, 2013 15:55:22
uuuu
vitalik_1984 писал(а):Спойлер
Код: Выделить всё
#define MASK 0x00000111
// объявление переменных
char show[]={0x11111110, 0x11111101, 0x11111011, 0x00000111}; //Error: must declare first in block
//-------------основной цикл
temp =PINB &MASK; //Error: undefined symbol 'temp'
switch (temp){ //Error: undefined symbol 'temp'
case (0x00000001): PORTD =show[1];break;
case (0x00000010): PORTD =show[2];break;
case (0x00000100): PORTD =show[3];break;
default : PORTD =show[4] ;
}//end of switch
Спойлер
CODE VISION ВЫРУГАЛСЯ ОШИБКАМИ НА ВАШ КОД,Я ИХ НАПИСАЛ НАПРОТИВ ТЕХ СТРОК.МНЕ НУЖНО ЕСЛИ ПЕРЕКЛЮЧАТЕЛЬ В ПЕРВОМ ПОЛОЖЕНИИ -ГОРИТ ЦИФРА 1,ВО ВТОРОМ-ЦИФРА 2,В ТРЕТЬЕМ-ЦИФРА 3.В ПРИНЦИПЕ МОЙ КОД ПРАВИЛЬНЫЙ,РАБОТАЕТ ,НО ОН НЕ ПЕРЕКЛЮЧАЕТ.Т.Е.ЕСЛИ ПЕРЕКЛЮЧАТЕЛЬ ВКЛЮЧЕН В ПЕРВОЕ ПОЛОЖЕНИЕ,ЗАГОРАЮТСЯ СЕГМЕНТЫ ,КОТОРЫЕ Я УКАЖУ В PORTD,НО КАК ТОЛЬКО Я ВКЛЮЧАЮ ВО ВТОРОЕ ИЛИ ТРЕТЬЕ ПОЛОЖЕНИЕ ПЕРЕКЛЮЧАТЕЛЬ ПРОГРАММА НЕ ПЕРЕХОДИТ СООТВЕТСТВЕННО ВО ВТОРУЮ И ТРЕТЬЮ ЧАСТЬ,А ПРОДОЛЖАЕТ ВЫПОЛНЯТЬСЯ ПЕРВАЯ.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт фев 14, 2013 17:13:56
vitalik_1984
а догадаться нельзя? раз пишет неопределенный символ, значит нужно его определить
Код: Выделить всё
//определение переменных
unsigned char temp =0;
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт фев 14, 2013 17:29:10
zero648
uuuu, замени все иксы "х" на "b"
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт фев 14, 2013 22:19:54
grindripperMi
Здравия, хвостатые!;) Подогнались микроконтроллеры: ATMEL 121,122, 322, 552, 618 с "расширением" 24 CO 1A, и AT 89C52(S52) все 24PC или PI. В разделе "для дома, для семьи" их можно как нибудь пристроить? Посоветуйте со схемами и с программами, если не затруднит кого нибудь из почтенного общества. Без издёвок! С уважением Михаил!
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт фев 14, 2013 23:58:46
vitalik_1984
zero648 писал(а):uuuu, замени все иксы "х" на "b"

чет запарился, хотя вроде не должно быть при этом сильных косяков, 111 не превышает 255, просто гореть будет не то, что предполагается.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт фев 15, 2013 00:21:09
nirq
24C01 - память, в гугле про неё есть. Небольшая.
89x52 - устаревшее и/или на любителя, программатор мутить специально для.
Схема с программой рожается из головы для решения поставленной задачи, иначе смысл процесса.... присоединять деталь А к детали Б по инструкции, чтоб добро не пропадало?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт фев 15, 2013 02:43:55
unalex
uuuu
эта конструкция делает все то, что вы написали выше(порт D ножки 0 1 2 выдают ноль ели на соответствующих ногах порта B единички(кнопка замыкает на массу), на остальных ногах порта D всегда висят единички),
проверьте сначала, потом пишите что не так
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт фев 15, 2013 02:52:58
unalex
uuuu писал(а):char show[]={0x11111110, 0x11111101, 0x11111011, 0x00000111};
ну тут явно больше 255
да и вообще к чему такие громоздкие конструкции, когда мой пример делает то же самое в одну строчку
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт фев 15, 2013 10:37:49
MS24
Ребят подскажите, нужно соединить HCPL-0931 и MAX13487. Делаю преобразователь USB - RS485. HCPL гальваническая развязка, MAX13487 - согласователь уровней с автоопределением направления. В даташите есть принципиальная схема включения на оптронах, а как Максимку подключить к HCPL-0931 я никак не могу понять.
Вот такой вариант будет работать?
http://we.easyelectronics.ru/GYUR22/max ... s-485.html
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт фев 15, 2013 12:05:00
unalex
MAX13487 1(RO) ->- HCPL-9031 2(IN1), HCPL-9031 7(OUT1) ->- RXD
MAX13487 4(DI) -<- HCPL-9031 3(OUT2), HCPL-9031 6(IN2) -<- TXD
или
MAX13487 1(RO) ->- HCPL-9031 6(IN2), HCPL-9031 3(OUT2) ->- RXD
MAX13487 4(DI) -<- HCPL-9031 7(OUT1), HCPL-9031 2(IN1) -<- TXD
как удобнее
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт фев 15, 2013 16:35:11
uuuu
код
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт фев 15, 2013 19:13:16
Gudd-Head
Может, заменить whil-ы на if'ы else-if'ы?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт фев 15, 2013 20:27:07
a_skr
uuuu писал(а):вы как будто меня не слышите?
проверяете в железе или симуляторе? На первый взгляд должно работать, но нужны подтягивающие к корпусу резисторы на всех входах. Если их нет, то можно предположить, что при включении на входах вначале низкий уровень, переключатель сразу дает высокий на одном входе, срабатывает нужный while, выставляет нужное значение на выходе, далее входы "подплывают" к логической единице и ни один while уже не сработает.
Можно сделать кнопки (переключатель) с замыканием на корпус, а не на плюс, включить внутреннюю подтяжку к питанию и не ставить внешние резисторы.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт фев 15, 2013 20:51:29
vitalik_1984
unalex писал(а):
проверьте сначала, потом пишите что не так
Ваш код работает так,что светодиод горит только пока нажата кнопка или какой либо выключатель.А uuuu, похоже, нужно чтобы при нажатии переключалось.
uuuu ваш код отлично работает, сейчас проверил в симуляции. Активное положение кнопок- 1.
При совместно включенном состоянии ничего не происходит, и это понятно, так как эти состояния не описаны.
И не нужно одно и то же повторять несколько раз. Лучше нарисуйте схемку сего устройства и приложите инициализацию портов, может где подтяжка включена, а это как раз не описанное состояние.
Я уже помогал делать проект для включения реле в нужной последовательности через нажатие на кнопки плюс-минус, могу приложить.