| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Поредната Глупава Идея :) http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=10888 |
Страница 1 от 3 |
| Автор: | hacker4eto1 [ Сря Дек 12, 2012 8:32 pm ] | |||||||||
| Заглавие: | Поредната Глупава Идея :) | |||||||||
Здравейте , пак се допитвам до вас с надеждата да одарите едно рамо Започнах да си правя един проект за умна стая в която да контролирам разни работи през компа и от тук идват леките ми ядове.. Снабдих се със Промишлен контролер с който да си играя а именно ето този . ![]() Снимах го до Кодовата брава за която ми помогнахте доста със сорса си има 16 изходи и входове. Направих си и моя програма с която да го управлявам това нещо посредством ком порта: с помоща на доста четене ..накратко това е програмата. ![]() Та както се вижда опитвам се да пускам разни работи през компа .Това успях да го направя и тествам.. Работата е сега ,че искам да направя обратна връзка на това което виждате примерно вкл. ми е плейсташана и аз да получавам информация от самият обект към виртуалната ми среда. Пробвах с микроконтролера и Входовете директно през изхода пуснах една обратна връзка и се получава работата .. но аз не искам да е така искам да се опитам да го направя с микроконтролер. Измислих ето това: ![]() Бутоните заместват примерно релета или някакъв друг вид контакт нарисувал съм ги така просто с цел експеримента. Та схемата ще я направя нямам проблем с това комуникацията ми ще е по Rs232 или ще увелича броят терминали като сложа Rs485(незнам все още)... С 2 думи на този виртуален терминал искам да ми пише инфото от съответният бутон примерно. 00000000 (8 нули ) когато не са натиснати (важно е да чета и 0 лите като състояние) 10000000 първи бутон натиснат... 101 ...... първи и 3 ти бутон натиснат.. Надявам се да ме разбирате.. Искам този микроконтролер само да праща информация. а не и да обработва.. за това изход RC6/Tx съм го вързал към RX на терминала.. проца ще го движа на 20мгх. с хиляди търсения из гоогле стигнах само до това:
Знам ,че трябва да опиша в програмата кой изходи на проца ще използвам като входове.. и че да съставя 2 функции според зависи състоянието на бутона...,но малко съм бос даже доста в програмирането Повярвайте ми изровил съм страшно много информация ..и не можах да намеря нещо според моя интерес. И ви моля да няма коментари от сорта глупав си и прочие.. ако можете да ми помогнете или да ми давате насоки аз ще пробвам ще мъча но да сътвориме едно просто софтче |
||||||||||
| Автор: | CarBeta [ Сря Дек 12, 2012 10:31 pm ] | |||||||||
| Заглавие: | Re: Поредната Глупава Идея :) | |||||||||
Не са две функции а две команди. На определено време взимаш PORTA и го слагаш в ТХREG.
|
||||||||||
| Автор: | Cekins [ Чет Дек 13, 2012 11:53 am ] |
| Заглавие: | Re: Поредната Глупава Идея :) |
Не казвам че не ти е правилна схемата ама по удачно би било : 1. бутоните да са на порт Б и 2. бутоните да са към маса а резисторите към +5V(дето му се вика още пулъп). Всъщност такива пулъпи има и вградени на порт Б. УАРТ-а по принцип след инициализация автоматично взема контрол върху пиновете (RC6 и RC7). Този процесор няма аналогови функции там, така че не ти трябва никаква конфигурация на порт С. В твоя случай трябва да настроиш единствено регистрите TXSTA и BAUDCON. След което, както колегата каза, четеш порта (инвертираш го ако искаш при натиснат бутон да ти дава 1 ако си ги вързал както казвам) и го записваш в TXREG. Цялото това нещо са 20-тина инструкции на асемблер, че дали не и по-малко. |
|
| Автор: | hacker4eto1 [ Пет Дек 14, 2012 12:14 am ] |
| Заглавие: | Re: Поредната Глупава Идея :) |
Направих така както ми казахте и смених входовете и инветирах масата със захранванетона пуллуп резисторите Само се чудя като ги има вградени в микроконтролера дали е необходимо да ги слагам и от вън .. или от имане глава не боли Ето схеми4ката утре ще почета малко уроци по софтуерната част. и ще ви покажа какво съм скопосал.. ![]() Момчета каква е разликата между 877 и 877А 2 рият има нещо + но какво не можах да разбера.. |
|
| Автор: | CarBeta [ Пет Дек 14, 2012 12:34 am ] |
| Заглавие: | Re: Поредната Глупава Идея :) |
Ползвай си вътрешните пулъпи, освен ако не искаш да имаш повече чаркаляци по платката. 877 няма компаратори, 877А има два компаратора и има малко повече варианти на клока на АЦП'то. |
|
| Автор: | Cekins [ Пет Дек 14, 2012 12:56 pm ] |
| Заглавие: | Re: Поредната Глупава Идея :) |
Имах предвид че няма анлогии на RC6 и RC7 където е уарт-а. Честно казано, препоръчвам външни пулъпи независимо че има вградени. Освен това за да ги ползваш трябва да ги включиш - на тоя процесор мисле че беше от OPTIONREG. Сега не ме питай що препоръчвам външни... |
|
| Автор: | hacker4eto1 [ Съб Дек 15, 2012 5:59 pm ] | |||||||||
| Заглавие: | Re: Поредната Глупава Идея :) | |||||||||
Мисля ,че имам известен напредък с доста мъки разбира се Идеята е Тези бутони когато ги натисна да ми пише на терминала примерно кой бутон е натиснат.. Написах този код:
и ефекта стана но става само когато съм вързал схемата така: ![]() Натиснал съм произволни бутони а не поредни и се получи но проблема е ,че не мога да инвертирам нивата . ако ги вържа като пуллуп схемата постоянно праща на терминала високи нива.. Та как мога да ги инвертирам смисъл проца да ги чете обратно Когато схемата е вързана така просто ги изрежда през 1 сек. всичките бутони... без да съм натиснал аз нещо.. Къде бъркам
|
||||||||||
| Автор: | raven_feather [ Съб Дек 15, 2012 7:04 pm ] |
| Заглавие: | Re: Поредната Глупава Идея :) |
Не, че разбирам ама пробвай така да видим if ((!input(pin...))) |
|
| Автор: | CarBeta [ Нед Дек 16, 2012 1:25 pm ] |
| Заглавие: | Re: Поредната Глупава Идея :) |
Процесора прави каквото му казваш да прави, т.е. да изпраща байт, когато конкретния извод е с високо ниво. Накарай го да праща когато нивото е ниско. И 1 секунда прекалено голямо изчакване да се сканират всички бутони. |
|
| Автор: | amdatlon [ Нед Дек 16, 2012 2:31 pm ] | ||||||||||||||||||
| Заглавие: | Re: Поредната Глупава Идея :) | ||||||||||||||||||
Да прав е колегата! Нещо такова :
if (input (pin_b7)) - Ако пинБ7 е = 1 if (!input (pin_b7)) -Ако пинБ7 НЕ Е = 1 |
|||||||||||||||||||
| Автор: | hacker4eto1 [ Нед Дек 16, 2012 4:23 pm ] |
| Заглавие: | Re: Поредната Глупава Идея :) |
Да получи се благодаря |
|
| Автор: | valioman [ Пон Дек 17, 2012 9:12 am ] |
| Заглавие: | Re: Поредната Глупава Идея :) |
Ако ги натиснеш едновременно ще получиш поредицата на тези числа/бутони според реда им на сканиране в while цикъла |
|
| Автор: | Cekins [ Пон Дек 17, 2012 10:16 am ] |
| Заглавие: | Re: Поредната Глупава Идея :) |
Такааа... Принципа ти е следния - четеш си постоянно целия порт Б, инвертираш го - ако нямаш натиснат бутон, резулатат ще ти е 0, изчакваш 5-10 милисекунди, пак го прочиташ и го сравняваш с предния резултат, ако съвпадат, приемаш че имаш валидно събитие. Иначе ще получаваш десетки отчитания на един и същ бутон/и. Аз си имам готов модул бутони който се държи точно като нормална клавиатура - подава си еднократно натиснатия бутон, след което изчаква известно време и ако е задържан пак го подава, пак чака ама по малко и ако все още е натиснат го подава само че с по малко изчакване и така нататък. Извеждането към терминала не е задължително да е ASCII - може да си е просто прочетения байт от порта, а после вече от него си вадиш битовете и т.н. |
|
| Автор: | hacker4eto1 [ Вто Дек 18, 2012 12:18 am ] | |||||||||
| Заглавие: | Re: Поредната Глупава Идея :) | |||||||||
Здравейте Та ето кода:
Обаче... Винаги има едно главно НО ![]() Забелязах ,че когато пусна програмата получавам веднага някакви битове примерно съм натиснал 3 бутона едновременно.. Според вас мога ли да го оправя това или да го прежаля |
||||||||||
| Автор: | hacker4eto1 [ Сря Дек 19, 2012 11:57 pm ] |
| Заглавие: | Re: Поредната Глупава Идея :) |
Момчета най-накрая постигнах успеха който искам ако имате забележки споделете да ги отстраня . Както и мнения по въпроса http://www.vbox7.com/play:90930052c2 |
|
| Страница 1 от 3 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|