| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| ïîìîù http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=673 |
Страница 1 от 2 |
| Автор: | ïîìîù [ Сря Май 18, 2005 11:38 am ] |
| Заглавие: | ïîìîù |
Íàïèñàõ òàçè ïðîãðàìêà è ÿ èçïðîáâàõ íà protåus ( ðàáîòè íîðìàëíî), íî êîãàòî ÿ ïðîáâàõ ñ èñòèíñêè ÏÈÊ, íåùàòà íå ñòîÿõà òî÷íî òàêà. Îòíà÷àëî òðúãíà êàêòî òðÿáâà, íî êîãàòî çàïî÷íàõ äà èçïúëíÿâàì îòäåëíèòå îïåðàöèè ãè èçïúëíè âåäíúæ è ñÿêàø ÇÀÁÈ (íèùî íå ùå äà ïðàâè). Íåçàâèñèìî äàëè ìó ñïèðàì çàõðàíâàíåòî íåùå äà îòëåïè? Ïîìèñëèõ ñè ÷å íåùî íå å íàðåä ÏÈÊÀ, íî ãî ïðîáâàõ è ñ äðóãè ïðîãðàìè è ñè ðàáîòè! #include <16F84A.H> #fuses XT,NOWDT,PUT,NOPROTECT #use delay(clock=4000000) #use fast_io(A) #use fast_io(B) main(){ int i; set_tris_a(0b11110); set_tris_b(0b00001110); ON_OFF: i=1; while(i){ delay_ms(10); if(input(PIN_A1)==0x1){ i--;}} i=25; while(i){ delay_ms(1000); i--; if(input(PIN_A1)==0x0){ goto ON_OFF;}} D: i=1; while(i){ if(input(PIN_B1)==0x1){ i--;} else if(input(PIN_B2)==0x1){ i--;} else if(input(PIN_B3)==0x1){ i--;}} i=15; if(input(PIN_A2)==0x1){ while(i){ delay_ms(1000); i--; if(input(PIN_A1)==0x0){ goto ON_OFF;}}} i=20; if(input(PIN_A3)==0x1){ while(i){ delay_ms(1000); i--; if(input(PIN_A1)==0x0){ goto ON_OFF;}}} i=25; if(input(PIN_A4)==0x1){ while(i){ delay_ms(1000); i--; if(input(PIN_A1)==0x0){ goto ON_OFF;}}} { output_high(PIN_B4); delay_ms(10); output_high(PIN_B5); delay_ms(10); output_high(PIN_B6);} i=180; while(i){ delay_ms(1000); i--; if(input(PIN_A1)==0x0){ output_low(PIN_B4); delay_ms(10); output_low(PIN_B5); delay_ms(10); output_low(PIN_B6); goto ON_OFF;}} { output_low(PIN_B4); delay_ms(10); output_low(PIN_B5); delay_ms(10); output_low(PIN_B6);} goto D; } |
|
| Автор: | HCL [ Сря Май 18, 2005 1:33 pm ] |
| Заглавие: | |
int i=1; while(i) { bla bla bla... i--; } и въобще за първи път виждам такава реализация. Ще изкоментират ли напредналите, има ли някакъв трик тук... |
|
| Автор: | ïîìîù [ Сря Май 18, 2005 2:11 pm ] |
| Заглавие: | |
Ìîæå ðåàëèçàöèÿòà äà å ñòðàííà, íî ïðîãðàìàòà ñå å ïðàâèëíà è ñïîðåä ñèìóëàòîðà íàèñòèíà ðàáîòè, íî íàïðàêòèêà ñ ðåàëåí ïèê íåùî íå å íàðåä. Ëîãè÷åñêè ïîãëåäíàòî íå âèæäàì ïðîáëåìè!!! |
|
| Автор: | bateAz [ Сря Май 18, 2005 2:26 pm ] |
| Заглавие: | |
Има логика в това while(i) само ако някакъв фонов процес ( ISR ) промени i. Иначе while(1) е къде къде по-разбираемо написано. |
|
| Автор: | Predator_MF [ Сря Май 18, 2005 3:00 pm ] |
| Заглавие: | |
Тоя спагети код си изглежда работещ....кажи кво имаш по портовете? Аз това мога да си го обясня единствено с хардуерна грешка....преди време ми се наложи заради точно такъв проблем да добавям по 4.7V ценери на едни 40 входа |
|
| Автор: | ïîìîù [ Сря Май 18, 2005 6:24 pm ] |
| Заглавие: | |
Àìè öÿëàòà ìè ñõåìà å çàõðàíåíà ñ òî÷íî 5V è ïî ïîðòîâåòå îñâåí 0V èëè 5V äðóãî íÿìà! |
|
| Автор: | HCL [ Сря Май 18, 2005 6:30 pm ] |
| Заглавие: | |
Като споменаваш портовете, да не взимаш захранване от ПЦ-то. Защото ако е така, мисля че няма да навреди да измериш колко точно. |
|
| Автор: | ïîìîù [ Сря Май 18, 2005 6:46 pm ] |
| Заглавие: | |
Çíà÷è ....... ñõåìàòà íà óñòðîéñòâîòî â ìîìåíòà ñå çàõðàíâà îò ðåãîëðóåì ñòàáèëèçàòîð è òàì ïðîáëåìè ñ íàïðåæåíèåòî íå ìîæå äà èìà. Ùî ñå îòíàñÿ äî ïðîãðàìàòîðà, àç ñúì JDM è çàõðàíâàíåòî ìè ñå ïîäàâà îò ÏÖ-òî. Íî íå ìèñëÿ ÷å òîâà å ïðîáëåìà çàùîòî ñúùîòî ÏÈÊ×Å ñúì ïîäêàðâàë äðóãè ïðîãðàìè íà ñúùèÿ ïðîãðàìàòîð. Ñîôòóåðà ìè å IC-Prog. |
|
| Автор: | Predator_MF [ Сря Май 18, 2005 7:37 pm ] |
| Заглавие: | |
Абе я обясни какво прави тази програма...на мен на цветомузика ми прилича |
|
| Автор: | ïîìîù [ Сря Май 18, 2005 8:08 pm ] |
| Заглавие: | |
Îò êîäà ìè ñå âèæäà, ÷å ñúì íà÷èíàåù. Òà ñè ïðàâÿ åäíà äîìàøíà àëàðìè÷êà è òÿ èçãëåæäà òàêà: |
|
| Автор: | Predator_MF [ Чет Май 19, 2005 2:13 am ] |
| Заглавие: | |
Хе, къде живееш...такоз де, ако очакваш тая алармичка да те опази...Ако и платаката си сглобил както схемата... |
|
| Автор: | ïîìîù [ Чет Май 19, 2005 12:21 pm ] |
| Заглавие: | |
Õèùíèê, áëàãîäàðÿ çà ñõåìàòà! Íå ñå îáèæäàé, íî íå âèæäàì çàùî ìîÿò ïðîåêò äà íå òå ïàçè, àêî ñîðñà ðàáîòåøå òîëêàâà äîáðå êîëêîòî íà ñèìóëàòîðà, âñå ïàê àç ñúì íà÷èíàåù ñ ìèêðîêîíòðîëåðèòå è êîãàòî òè âèäÿõ ñîðñ êîäà ðàçáðàõ êîëêî ìíîãî èìàì äà ó÷à, çà äà ìîãà äà ãè ïðîãðàìèðàì êàòî õîðàòà. Íåâèæäàì ïðîáëåì ïî ñõåìàòà ìè, âñå ïàê òîâà å ñàìî íàõâúðëÿíî è íå å öÿëàòà (äà íå ñè ñè ïîìèñëèë äðóãî Ïàê áëàãîäàðÿ! |
|
| Автор: | Predator_MF [ Чет Май 19, 2005 12:23 pm ] |
| Заглавие: | |
Аз нали затова ти написах това (не че и то не е разхвърляно), исках да видиш как като подредиш малко по-лесно се ориентираш къде може да възникне проблем. Схвана ли как работи схемата? |
|
| Автор: | ïîìîù [ Чет Май 19, 2005 12:41 pm ] |
| Заглавие: | |
Äà, â îáùè ëèíèè ãî ñõâàíàõ, íî ìèñëÿ ÷å è íÿêîå äðóãî îáÿñíåíèå ùå ìè äîéäå äîáðå. Ìàé å âðåìå äà ñå ðåãàñòðèðàì |
|
| Автор: | Predator_MF [ Чет Май 19, 2005 4:44 pm ] | |||||||||
| Заглавие: | ||||||||||
void init_ports(); // Стандартна за моите програми int1 sensors_scan(); // Функция, която връща 1 ако някой бутон (датчик) е активиран void Flash_GREEN(int8 count); // Мигане на зелено за 500мс count пъти void Flash_RED(int8 count); // Мигане на червено за 500мс count пъти int8 Get_Option_Time(); // Четене на трите ключа за настройка на време
Може да има няколко бъга, все пак е писано за 15-ина минути. За подобрения може да сложиш функция, която да сканира дали са прекъснати кабелите на четерите датчика. Зареждаш кондензаторите (те стоят от страната на датчиците а не на платката с алармата) , проверяваш дали са 1....ако не са 1 значи някой им е отрязал саксиите. Може и да запаметяваш в EEPROM-а състоянието на алармата...аве ти си решаваш...за мен това си е една тренировка, колкото да не забравям какво е PIC16F84... |
||||||||||
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|