| Автор |
Съобщение |
|
hacker4eto1
Ранг: Минаващ
Регистриран на: Пет Май 18, 2012 9:14 pm Мнения: 64
|
 Поредната Глупава Идея :)
Здравейте , пак се допитвам до вас с надеждата да одарите едно рамо  Започнах да си правя един проект за умна стая в която да контролирам разни работи през компа и от тук идват леките ми ядове.. Снабдих се със Промишлен контролер с който да си играя а именно ето този .  Снимах го до Кодовата брава за която ми помогнахте доста със сорса  ..та и нея контролирам с този контролер. както се вижда на снимката си има 16 изходи и входове. Направих си и моя програма с която да го управлявам това нещо посредством ком порта: с помоща на доста четене ..накратко това е програмата.  Та както се вижда опитвам се да пускам разни работи през компа .Това успях да го направя и тествам.. Работата е сега ,че искам да направя обратна връзка на това което виждате примерно вкл. ми е плейсташана и аз да получавам информация от самият обект към виртуалната ми среда. Пробвах с микроконтролера и Входовете директно през изхода пуснах една обратна връзка и се получава работата .. но аз не искам да е така искам да се опитам да го направя с микроконтролер. Измислих ето това:  Бутоните заместват примерно релета или някакъв друг вид контакт нарисувал съм ги така просто с цел експеримента. Та схемата ще я направя нямам проблем с това комуникацията ми ще е по Rs232 или ще увелича броят терминали като сложа Rs485(незнам все още)... С 2 думи на този виртуален терминал искам да ми пише инфото от съответният бутон примерно. 00000000 (8 нули ) когато не са натиснати (важно е да чета и 0 лите като състояние) 10000000 първи бутон натиснат... 101 ...... първи и 3 ти бутон натиснат.. Надявам се да ме разбирате.. Искам този микроконтролер само да праща информация. а не и да обработва.. за това изход RC6/Tx съм го вързал към RX на терминала.. проца ще го движа на 20мгх. с хиляди търсения из гоогле стигнах само до това:  |  |  |  | Код: #include <16F877A.h> #fuses HS, NOWDT, NOPUT, NODEBUG, NOLVP, NOBROWNOUT, NOCPD, NOPROTECT, NOWRT #use delay(clock = 20000000)
#use rs232(baud=19200, xmit=PIN_C6, rcv=PIN_C7, ERRORS) |  |  |  |  |
Знам ,че трябва да опиша в програмата кой изходи на проца ще използвам като входове.. и че да съставя 2 функции според зависи състоянието на бутона...,но малко съм бос даже доста в програмирането Повярвайте ми изровил съм страшно много информация ..и не можах да намеря нещо според моя интерес. И ви моля да няма коментари от сорта глупав си и прочие.. ако можете да ми помогнете или да ми давате насоки аз ще пробвам ще мъча но да сътвориме едно просто софтче 
_________________Инж.Тодор Димитров гр./Ямбол / 24г. Последен Проект... http://www.vbox7.com/play:c1e9997504
|
| Сря Дек 12, 2012 8:32 pm |
|
 |
|
CarBeta
Ранг: Форумен бог
Регистриран на: Пет Май 01, 2009 4:01 pm Мнения: 1438
|
 Re: Поредната Глупава Идея :)
Не са две функции а две команди. На определено време взимаш PORTA и го слагаш в ТХREG.
|
| Сря Дек 12, 2012 10:31 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: Поредната Глупава Идея :)
Не казвам че не ти е правилна схемата ама по удачно би било : 1. бутоните да са на порт Б и 2. бутоните да са към маса а резисторите към +5V(дето му се вика още пулъп). Всъщност такива пулъпи има и вградени на порт Б. УАРТ-а по принцип след инициализация автоматично взема контрол върху пиновете (RC6 и RC7). Този процесор няма аналогови функции там, така че не ти трябва никаква конфигурация на порт С. В твоя случай трябва да настроиш единствено регистрите TXSTA и BAUDCON. След което, както колегата каза, четеш порта (инвертираш го ако искаш при натиснат бутон да ти дава 1 ако си ги вързал както казвам) и го записваш в TXREG. Цялото това нещо са 20-тина инструкции на асемблер, че дали не и по-малко.
|
| Чет Дек 13, 2012 11:53 am |
|
 |
|
hacker4eto1
Ранг: Минаващ
Регистриран на: Пет Май 18, 2012 9:14 pm Мнения: 64
|
 Re: Поредната Глупава Идея :)
Направих така както ми казахте и смених входовете и инветирах масата със захранванетона пуллуп резисторите Само се чудя като ги има вградени в микроконтролера дали е необходимо да ги слагам и от вън .. или от имане глава не боли Ето схеми4ката утре ще почета малко уроци по софтуерната част. и ще ви покажа какво съм скопосал..  Момчета каква е разликата между 877 и 877А 2 рият има нещо + но какво не можах да разбера..
_________________Инж.Тодор Димитров гр./Ямбол / 24г. Последен Проект... http://www.vbox7.com/play:c1e9997504
|
| Пет Дек 14, 2012 12:14 am |
|
 |
|
CarBeta
Ранг: Форумен бог
Регистриран на: Пет Май 01, 2009 4:01 pm Мнения: 1438
|
 Re: Поредната Глупава Идея :)
Ползвай си вътрешните пулъпи, освен ако не искаш да имаш повече чаркаляци по платката.
877 няма компаратори, 877А има два компаратора и има малко повече варианти на клока на АЦП'то.
|
| Пет Дек 14, 2012 12:34 am |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: Поредната Глупава Идея :)
Имах предвид че няма анлогии на RC6 и RC7 където е уарт-а. Честно казано, препоръчвам външни пулъпи независимо че има вградени. Освен това за да ги ползваш трябва да ги включиш - на тоя процесор мисле че беше от OPTIONREG. Сега не ме питай що препоръчвам външни...
|
| Пет Дек 14, 2012 12:56 pm |
|
 |
|
hacker4eto1
Ранг: Минаващ
Регистриран на: Пет Май 18, 2012 9:14 pm Мнения: 64
|
 Re: Поредната Глупава Идея :)
Мисля ,че имам известен напредък с доста мъки разбира се  ето какво сътворих. Идеята е Тези бутони когато ги натисна да ми пише на терминала примерно кой бутон е натиснат.. Написах този код: и ефекта стана но става само когато съм вързал схемата така:  Натиснал съм произволни бутони а не поредни и се получи но проблема е ,че не мога да инвертирам нивата . ако ги вържа като пуллуп схемата постоянно праща на терминала високи нива.. Та как мога да ги инвертирам смисъл проца да ги чете обратно  Когато схемата е вързана така просто ги изрежда през 1 сек. всичките бутони... без да съм натиснал аз нещо.. Къде бъркам 
_________________Инж.Тодор Димитров гр./Ямбол / 24г. Последен Проект... http://www.vbox7.com/play:c1e9997504
|
| Съб Дек 15, 2012 5:59 pm |
|
 |
|
raven_feather
Ранг: Популярен
Регистриран на: Чет Сеп 28, 2006 4:24 pm Мнения: 320 Местоположение: Варна
|
 Re: Поредната Глупава Идея :)
Не, че разбирам ама пробвай така да видим  if ((!input(pin...)))
|
| Съб Дек 15, 2012 7:04 pm |
|
 |
|
CarBeta
Ранг: Форумен бог
Регистриран на: Пет Май 01, 2009 4:01 pm Мнения: 1438
|
 Re: Поредната Глупава Идея :)
Процесора прави каквото му казваш да прави, т.е. да изпраща байт, когато конкретния извод е с високо ниво. Накарай го да праща когато нивото е ниско. И 1 секунда прекалено голямо изчакване да се сканират всички бутони.
|
| Нед Дек 16, 2012 1:25 pm |
|
 |
|
amdatlon
Ранг: Почетен член
Регистриран на: Чет Мар 19, 2009 8:33 pm Мнения: 804
|
 Re: Поредната Глупава Идея :)
Да прав е колегата! Нещо такова : if (input (pin_b7)) - Ако пинБ7 е = 1 if ( !input (pin_b7)) -Ако пинБ7 НЕ Е = 1
|
| Нед Дек 16, 2012 2:31 pm |
|
 |
|
hacker4eto1
Ранг: Минаващ
Регистриран на: Пет Май 18, 2012 9:14 pm Мнения: 64
|
 Re: Поредната Глупава Идея :)
Да получи се благодаря  , сега като го вързах терминала след МАКС232 ми показва не числа а други неща това е нормално нали ,като закачих осцилоскопа ми дава различни сигнали значи всичко е точно така ли е  и другият ми въпрос така както съм написал програмата ако натисна примерно 3 бутона едновременно според вас ще получа ли цялата информация .. понеже на симулацията ми забива програмата и ... не мога да разбера. какво ще стане ако ги натисна 3 едновременно 
_________________Инж.Тодор Димитров гр./Ямбол / 24г. Последен Проект... http://www.vbox7.com/play:c1e9997504
|
| Нед Дек 16, 2012 4:23 pm |
|
 |
|
valioman
Ранг: Почетен член
Регистриран на: Съб Сеп 17, 2005 5:07 pm Мнения: 813 Местоположение: Сливен
|
 Re: Поредната Глупава Идея :)
Ако ги натиснеш едновременно ще получиш поредицата на тези числа/бутони според реда им на сканиране в while цикъла 
|
| Пон Дек 17, 2012 9:12 am |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: Поредната Глупава Идея :)
Такааа... Принципа ти е следния - четеш си постоянно целия порт Б, инвертираш го - ако нямаш натиснат бутон, резулатат ще ти е 0, изчакваш 5-10 милисекунди, пак го прочиташ и го сравняваш с предния резултат, ако съвпадат, приемаш че имаш валидно събитие. Иначе ще получаваш десетки отчитания на един и същ бутон/и. Аз си имам готов модул бутони който се държи точно като нормална клавиатура - подава си еднократно натиснатия бутон, след което изчаква известно време и ако е задържан пак го подава, пак чака ама по малко и ако все още е натиснат го подава само че с по малко изчакване и така нататък. Извеждането към терминала не е задължително да е ASCII - може да си е просто прочетения байт от порта, а после вече от него си вадиш битовете и т.н.
|
| Пон Дек 17, 2012 10:16 am |
|
 |
|
hacker4eto1
Ранг: Минаващ
Регистриран на: Пет Май 18, 2012 9:14 pm Мнения: 64
|
 Re: Поредната Глупава Идея :)
Здравейте  имах малко проблеми със този код който използвах понеже когато пиша програмата след това на Визуал басик.. която дефакто да ми визуализира състоянието на даден обект.. срещнах доста голяма трудност.. както каза "Carbeta" напиши по сложен код тук а във ВБ по лесен.. не го послушах и усетих какво е имал предвид. Малко пипнах кода с 300 та мъки и го направих така ,че да ми праща 2 състояния за отделен бутон за да може после по лесно да настроя програмата на ВБ. Та ето кода: Обаче... Винаги има едно главно НО   Забелязах ,че когато пусна програмата получавам веднага някакви битове примерно съм натиснал 3 бутона едновременно.. Според вас мога ли да го оправя това или да го прежаля  като тези битове се пращат за по малко от сек .. само леко трепти праща и се оправя...
_________________Инж.Тодор Димитров гр./Ямбол / 24г. Последен Проект... http://www.vbox7.com/play:c1e9997504
|
| Вто Дек 18, 2012 12:18 am |
|
 |
|
hacker4eto1
Ранг: Минаващ
Регистриран на: Пет Май 18, 2012 9:14 pm Мнения: 64
|
 Re: Поредната Глупава Идея :)
Момчета най-накрая постигнах успеха който искам  Направих и клипче да видите и 2 те програми как се държат. ако имате забележки споделете да ги отстраня . Както и мнения по въпроса http://www.vbox7.com/play:90930052c2
_________________Инж.Тодор Димитров гр./Ямбол / 24г. Последен Проект... http://www.vbox7.com/play:c1e9997504
|
| Сря Дек 19, 2012 11:57 pm |
|
|