|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 1:34 am
Поредната Глупава Идея :)
| Автор |
Съобщение |
|
Cino
Ранг: Новодошъл
Регистриран на: Чет Окт 02, 2008 10:24 pm Мнения: 105
|
 Re: Поредната Глупава Идея :)
инж. Т.Димитров явно има желание да се научи, някой да му обясни как се сканират бутони, барабар със дебоунсинга, във духа на кооперативния мултитаскинг. При него е по лесно защото бутоните са от 0 до 7 на ПОРТ.Б
|
| Чет Дек 20, 2012 3:46 am |
|
 |
|
hacker4eto1
Ранг: Минаващ
Регистриран на: Пет Май 18, 2012 9:14 pm Мнения: 64
|
 Re: Поредната Глупава Идея :)
Moчета ударете едно рамо трябва да го свържа това нещо със един макс232 а след него един 485 понеже ще е на по голямо разстояние комуникацията. и само ще се предава значи ще е халфдуплекс. Не ми е ясно последователноста как трябва да е : така ли ? КОМПОРТ-->232--->485-->ПИК или по друг начин.. с 2 думи да ми обясните по човешки му начин.
_________________Инж.Тодор Димитров гр./Ямбол / 24г. Последен Проект... http://www.vbox7.com/play:c1e9997504
|
| Чет Дек 20, 2012 7:30 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: Поредната Глупава Идея :)
Ами трябва ти два чипа rs485 - от двата края на линията - отвори си който и да е даташийт на такъв чип и ще видиш примерни схемички. Само не те знам от страната на компютъра с къв интерфейс си - ако имаш "истински" RS232 ще ти трябва някакъв конвертор от RS232 към RS485. При халф дуплекса има и малко подробности с управлението на ресивърите по време на изпращане - ако са enabled стават повторители на изпратеното - демек винаги имаш ехо и освен това трябва да не се засичат изпращания от двата края щото става мазало. Аве не е чак толкова проста работата колкото си я мислиш. Не знам какъв инженер си. Ако си машинен инженер ОК. Ама ако си учил в тая сфера дето питаш - язък ти за образованието.
|
| Чет Дек 20, 2012 9:31 pm |
|
 |
|
hacker4eto1
Ранг: Минаващ
Регистриран на: Пет Май 18, 2012 9:14 pm Мнения: 64
|
 Re: Поредната Глупава Идея :)
Изпитвам малко затруднение опитвам се да пусна един ШИМ на изход CCP1 и стигнах само до тук.  |  |  |  | Код: #include <16F877.h> #fuses XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP #define _XTAL_FREQ 20000000 #use delay(clock=20M) #use RS232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) void main() { output_low(PIN_C1);
setup_ccp1(CCP_PWM);
setup_timer_2(T2_DIV_BY_16, 124, 1); set_pwm1_duty(512); // 50%
while(1); |  |  |  |  |
оправих duty cycle но честотата не мога да настроя да ми е 38khz. Едно рамо да одарите
_________________Инж.Тодор Димитров гр./Ямбол / 24г. Последен Проект... http://www.vbox7.com/play:c1e9997504
|
| Съб Дек 22, 2012 3:10 pm |
|
 |
|
valioman
Ранг: Почетен член
Регистриран на: Съб Сеп 17, 2005 5:07 pm Мнения: 813 Местоположение: Сливен
|
 Re: Поредната Глупава Идея :)
Еми сметния де ... и ако си по хитър ще си го направиш през wizard-a на CCS 
|
| Съб Дек 22, 2012 6:23 pm |
|
 |
|
hacker4eto1
Ранг: Минаващ
Регистриран на: Пет Май 18, 2012 9:14 pm Мнения: 64
|
 Re: Поредната Глупава Идея :)
Мисля ,че се справих със задачата и май ще започвам да поя Ето схемата за сега.  Ето и кода:  |  |  |  | Код: #include <16F877.h> #fuses XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP #define _XTAL_FREQ 20000000 #use delay(clock=20M) #use RS232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) int Button1; int Button2; int Button3; int Button4; int Button5; int Button6; int Button7; int Button8; void main() { output_low(PIN_C1);
setup_ccp1(CCP_PWM);
setup_timer_1(T1_DISABLED); setup_timer_2(T2_DIV_BY_1,130,1); set_pwm1_duty(62); // 50% while(true) { switch( Button1 ) { case 1: if (!input(PIN_B0)) { putc('2'); Button1 = 0; } break; case 0: if (input(PIN_B0)) { putc('3'); Button1 = 1; } break; } switch( Button2 ) { case 1: if (!input(PIN_B1)) { putc('4'); Button2 = 0; } break; case 0: if (input(PIN_B1)) { putc('5'); Button2 = 1; } break; } switch( Button3 ) { case 1: if (!input(PIN_B2)) { putc('6'); Button3 = 0; } break; case 0: if (input(PIN_B2)) { putc('7'); Button3 = 1; } break; } switch( Button4 ) { case 1: if (!input(PIN_B3)) { putc('8'); Button4 = 0; } break; case 0: if (input(PIN_B3)) { putc('9'); Button4 = 1; } break; } switch( Button5 ) { case 1: if (!input(PIN_B4)) { putc('A'); Button5 = 0; } break; case 0: if (input(PIN_B4)) { putc('B'); Button5 = 1; } break; } switch( Button6 ) { case 1: if (!input(PIN_B5)) { putc('C'); Button6 = 0; } break; case 0: if (input(PIN_B5)) { putc('D'); Button6 = 1; } break; } switch( Button7 ) { case 1: if (!input(PIN_B6)) { putc('E'); Button7 = 0; } break; case 0: if (input(PIN_B6)) { putc('F'); Button7 = 1; } break; } switch( Button8 ) { case 1: if (!input(PIN_B7)) { putc('J'); Button8 = 0; } break; case 0: if (input(PIN_B7)) { putc('H'); Button8 = 1; } break; } } }
|  |  |  |  |
Някакви забележки или проблеми да ви се виждат със кода или схемата ?
_________________Инж.Тодор Димитров гр./Ямбол / 24г. Последен Проект... http://www.vbox7.com/play:c1e9997504
|
| Съб Дек 22, 2012 9:07 pm |
|
 |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
 Re: Поредната Глупава Идея :)
74HC04 ще го слагаш ли?
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Съб Дек 22, 2012 9:13 pm |
|
 |
|
hacker4eto1
Ранг: Минаващ
Регистриран на: Пет Май 18, 2012 9:14 pm Мнения: 64
|
 Re: Поредната Глупава Идея :)
Aми ако не го инвертирам сигнала не се праща към ком порта имам и друго питане . когато вкл. и изхода CCP1 към осцилоскопа и схемата много бавно взима да работи ,а като натисна бутон нивото остава ниско поне 2 3 сек докато не стане пак високо. Дали някой време трябва да оправя или просто Протеуса му идва множко.. Оставя ли го висащ изхода макар да го вижда как осцилира няма проблеми..
_________________Инж.Тодор Димитров гр./Ямбол / 24г. Последен Проект... http://www.vbox7.com/play:c1e9997504
|
| Съб Дек 22, 2012 9:22 pm |
|
 |
|
valioman
Ранг: Почетен член
Регистриран на: Съб Сеп 17, 2005 5:07 pm Мнения: 813 Местоположение: Сливен
|
 Re: Поредната Глупава Идея :)
Погледни в хелпа #use RS232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) има още параметри единия от които е инвертиране ... няма смисъл от цял чип За програмата няма да коментирам .... като за сефте щом работи .... добре Но най добре пои и то на универсална платка че с това виртуалното .. обсъждали сме разликата между реалния и виртуалния секс .... още колко има да копаш  И един съвет ... това е контролер .. не знаеш при вклъчване в кво състояние ще са портовете .. свикни винаги в началото да сетваш портовете (TRISовете) в съответните състояния и да изключиш или включиш перифериите .. а после си изливай душата в код
|
| Нед Дек 23, 2012 12:49 pm |
|
 |
|
hacker4eto1
Ранг: Минаващ
Регистриран на: Пет Май 18, 2012 9:14 pm Мнения: 64
|
 Re: Поредната Глупава Идея :)
Дa Благодаря ти много за инфото успях да го инвертирам  Иначе ще я правя на бредборда
_________________Инж.Тодор Димитров гр./Ямбол / 24г. Последен Проект... http://www.vbox7.com/play:c1e9997504
|
| Нед Дек 23, 2012 1:40 pm |
|
 |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
 Re: Поредната Глупава Идея :)
Защо му е да слага инвертиране в настройките на порта?
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Нед Дек 23, 2012 4:52 pm |
|
 |
|
valioman
Ранг: Почетен член
Регистриран на: Съб Сеп 17, 2005 5:07 pm Мнения: 813 Местоположение: Сливен
|
 Re: Поредната Глупава Идея :)
За да спести малко калай и много благословии и още 3 страници въпроси ... ясно е че не е нужно в реално изпълнение ... жал ми е кат гледам как се мъчи
|
| Нед Дек 23, 2012 9:03 pm |
|
 |
|
hacker4eto1
Ранг: Минаващ
Регистриран на: Пет Май 18, 2012 9:14 pm Мнения: 64
|
 Re: Поредната Глупава Идея :)
Знам ,че ви дотегнах ама .... налепих я платката и както се вика едно голямо Нищо.. Забелязах ,че трябва да имам на 14 крак на 232-ката ето това напрежение.  а аз имам -8.48в отрицателно ... а хекса който заредих в пика ми е с инвертираният сигнал към 232 ката , в протеуса ми го показва +8.5 ,а когато сложа хекс който не съм инвертирал напрежението в реално изпълнение на платката е с + а в протеуса с минус и нищо.. И да ви питам другото което е на ком порта съм свързал 5 цата на маса и 3 ката към 232 ката друго не съм слагал смисъл 2 ри пин е когато приемам инфо , а аз такава опция нямам .. или си има стандарт някакъв а схемата е правилна не съм объркал нищо 200 пъти от до мерих... има си го и Шима всичко си има на изхода на микроконтролера,Само и единствено това ме притеснява ,че не се праща нищо към компа.. ,ако знаете някои програма дето да видя дали пращам "пакети" към ком порта на пц то добре ще е.. И пак се извинявам за глупавите въпроси ама съм нов в тия работи..
_________________Инж.Тодор Димитров гр./Ямбол / 24г. Последен Проект... http://www.vbox7.com/play:c1e9997504
|
| Пон Дек 24, 2012 2:30 pm |
|
 |
|
valioman
Ранг: Почетен член
Регистриран на: Съб Сеп 17, 2005 5:07 pm Мнения: 813 Местоположение: Сливен
|
 Re: Поредната Глупава Идея :)
CCS-a има приложение в tools->serial port monitor с него си работи. като за начало пусни си един
while(true){ putc(0x55); delay_ms(1000); }
докато си оправиш кмунакцията скоростите и т.н. .. Не гледай протеуса ... за симулацията можеш директно да закачиш терминала и / или компорта директно на пиновете на контролера .. не ти трябва MAX-a , докато в реалния живот е нужен заради нивата т.е. в реалния живот махаш INVERT параметъра , и вместо FORCE_SW сложи UART1 та да си ползваш хардуерния модул на пикльото.
Чак че сега се зачетох по подробно ... искаш да кажеш че си вързал извода ти от платката за 3 ти пин на компа ????? Ми и да се скъсаш няма нищо да приемеш ... нали комуникацията ти е от пикльото към компа т.е. трябва да закачиш 2 ри пин на компа(RD) към TX пина на пикльто (след макс232 де) .
|
| Пон Дек 24, 2012 4:12 pm |
|
 |
|
hacker4eto1
Ранг: Минаващ
Регистриран на: Пет Май 18, 2012 9:14 pm Мнения: 64
|
 Re: Поредната Глупава Идея :)
Малко отсъствах  за което се извинявам имах други задължения и днес когато се върнах към проекта и ми остана малко време да тествам,направих всичко наново ,свързах схемата към ком порта и всичко работеше .От време на време се появява странен бъг или незнам как да го нарека а именно когато натисна бутон който и да е програмата на компа отчита ,че се натиска бутон ,но по някой път този бутон остава активен,не винаги го прави и то при различни случаи и различни бутони ... Примерно ако натисна и задържа бутона за повече и като го пусна той си остава да свети ,докато не го натисна пак..Някой път като натискам много бързо произволен бутон пак остава в такова ниво все едно е натиснат  П.П според вас на какво може да се дължи това нещо  иначе си оправих и Шима няма проблем с него поне за сега
_________________Инж.Тодор Димитров гр./Ямбол / 24г. Последен Проект... http://www.vbox7.com/play:c1e9997504
|
| Чет Яну 03, 2013 7:27 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 2 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|