| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Добавка към аларма за кола хелп http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=7388 |
Страница 1 от 3 |
| Автор: | darkshy [ Нед Дек 13, 2009 1:18 am ] | |||||||||
| Заглавие: | Добавка към аларма за кола хелп | |||||||||
Моля за малко помощ. Какво ли не опитах, но mikroC-то версия 8.2.0.0 при компилиране дава: "Reentracy not allowed: function [mask] called in both main and interrupt threads" mask е функция за извеждане стойност на 7сегментен дисплей от микроСи-то. Отскоро започнах да пиша на Си. Това представлява добавка към алармена система за кола, защото на майка ми и разбиха колата и сега сложихме аларма и искам когато някой чукне колата алармата да праща импулс към пик-а койта изписва на дисплея колко пъти е чукната колата. Ако са повече от 0 свети светодиода на РА0. Брояча на чуквания брои само до 9. При всяко чукване светва мощна халогенна лампа чрез реле насочена към колата за 30 сек вързана към РА1. А към РА2 има бутон за нулирване на дисплея. Информацията за дисплея се записва в еепрома за да може ако спре тока да се зареди стара стойност. предварително 10х Ето кода:
|
||||||||||
| Автор: | bobyper [ Нед Дек 13, 2009 9:54 am ] |
| Заглавие: | |
Неползвам MicroC но твоя проблем идва от това че викаш функцията check() от главната програма main() а също така и от прекъсването interrupt(). Това е доста лоша идея. Трябва в прекъсването да се викат отделни функции, а още по-добре да не се полазва викане на функции. |
|
| Автор: | relsys [ Нед Дек 13, 2009 10:36 am ] |
| Заглавие: | |
.... И въобще като цяло безкрайно зле написана програма. |
|
| Автор: | bateAz [ Нед Дек 13, 2009 11:20 am ] |
| Заглавие: | |
"if (BUT=0) { " Това какво прави ? |
|
| Автор: | optron [ Нед Дек 13, 2009 1:00 pm ] |
| Заглавие: | |
За такава проста задача е безсмислено да се ползва прекъсване. Направи си един цикъл, който да сканира входовете и да прихваща фронтове. При преден фронт - броиш и светкаш. Толкоз. Имай предвид, че на този процесор епромът му издържа доста малко цикли на запис. |
|
| Автор: | bobyk [ Нед Дек 13, 2009 2:01 pm ] |
| Заглавие: | |
Това което си написал е едно голямо нищо и съответно нищо не прави. Вземи предвид забележките и я напиши от начало без дори да поглеждаш към старото си творение. И прекъсване не ти трябва, не забравяй че = и == не е едно и също. Като напишеш нещо ново постни го да видиме напредъка |
|
| Автор: | darkshy [ Нед Дек 13, 2009 8:36 pm ] |
| Заглавие: | |
10x. Сега ще я започвам отново. За прекъсването и еепрома нарочно го направих така за да се пробвам и да науча как става. Смятам да започвам да чета една книжка за C за PIC-ове в pdf. Като пренапиша програмата ще я кача отново да кажете дали напредвам Ако не се изразявам добре, не се притеснявайте да ми пишете. Не смея да ви викам "колеги" защото първо - не съм още напреднал с материята и второ - съм още на 14 години. Благодаря за препоръките. Айде,че сега започвам програмката Поздрави от Варна! |
|
| Автор: | lafi [ Пон Дек 14, 2009 12:17 am ] |
| Заглавие: | |
Трябва да се забрани споменаването на Pic16F84 във форума. Да се добави в правилата и условията за ползване на сайта - Бан изтриване на акаунта и блокиране по IP. Не мога да разбера, защо го ползват още в радиолюбителските сайтове, след като е по-скъп от алтернативата 16F628 и скоро най-вероятно ще бъде спрян от производство, ако не е вече. |
|
| Автор: | darkshy [ Пон Дек 14, 2009 12:25 am ] |
| Заглавие: | |
Аз този проект го правя точно за да се отърва от него Иначе сега съм с 16ф876а и съм доволен |
|
| Автор: | lafi [ Пон Дек 14, 2009 1:12 am ] |
| Заглавие: | |
16F886 са 2 пъти по ефтини, не знам защо не поръчвате от тях. В Комет зареждат по 25 бройки, защото не се търсят най-вероятно. |
|
| Автор: | bobyk [ Пон Дек 14, 2009 10:55 am ] |
| Заглавие: | |
Че имаш желание да учиш е похвално. Ето ти малко градивна критика: 1.МикроЦ - едно недоразумение както всичко на МикроЕ. По добре си избери нещо друго (няма много да ти липсват точно тяхните библиотеки, има достатъчно други из нета, а и винаги можеш да си напишеш сам, не си позволявай да свикваш с малоумията им иначе ще се превънеш в ... малоумник), по възможност да е по ANSI C ориентирано че и CCS си има особености. Wizard-ите не са лошо нещо ама ако генерират ANSI C код, а не нещо специфично за съответния компилатор. 2.Обикновено еепрома не се ползва като рам понеже живота му не е безкраен, има малко по-различен подход ако искаш да си запазиш състоянието при отпадане на захранването, то в твоя случай това не е от особено значение. 3.В Си винаги има начин да избегнеш употребата на goto, т.е. като се понаучиш ще видиш колко грозно и безсмислено е това. В твоя случай continue прави това което искаш. for( ; ; ) { if(BUT==0) { goto start; } би могло да е ... while(BUT != 0); continue; Е могат и още неща да се кажат за твоята програма ама за сега толкова. Ще ми се да ни запознаеш и със следващия си "проект", ама нека да е някоя 18ка че пик16 е едно наказание дето... има доста изписано. А и днешно време на прилични пари има доста по истински контролери, не се задържай на много малките. |
|
| Автор: | darkshy [ Пон Дек 14, 2009 4:20 pm ] |
| Заглавие: | |
Благодаря за съветите. Значи ще се насоча към hitech-a. Както казва bobyk имам мерак да се науча, а не като някои хора, които искат всичко да им е наготово. Освен това не искам да назубря нещо, ами искам да го осмисля и разбера. В момента малко бавно протича обучението ми защото съм в 8ми клас в МГ Варна и много ни дават домашни и тем подобни работи и ми остава малко свободно време през което да изучавам микроконтролерите. Като се понауча малко ще захващам 18ките. btw смятам да си поръчам ICD2 клонинг от тук: http://www.sirius-pcb.com/?mod=catalog&show=50 .Мислех за pickit2 клонинг (пак от същия сайт), но като се поразчетох из форуми мисля, че ИЦД-то е по-добрия вариант. П.П. Замислих се дали има някой друг в този форум от Варна?! |
|
| Автор: | optron [ Пон Дек 14, 2009 10:41 pm ] |
| Заглавие: | |
Айде, от мен една похвала, стига толкова критики: Браво! Подходил си методично и си използвал нагледни методи и това е дало резултат. Друго си е, когато видиш нещата на картинки (имам предвид диаграмата в случая). Така и занапред. Като се усъвършенстваш, за простички задачи вече няма да са ти нужни диаграмки на хартия, ти ще си ги представяш в главата общо взето. От Сириус поръчвай само сглобени и тествани изделия, защото доколкото съм чувал, китовете им са зле комплектовани и понякога не тръгват. ПП: На твоите години, аз вече се борих с транзистори. Ама тогава бяха и други времена. Сега технологиите са доста напред спрямо тогава. Подозирам какво ще ти е средното образование ... |
|
| Автор: | darkshy [ Пон Дек 14, 2009 10:50 pm ] |
| Заглавие: | |
Благодаря П.П. Иначе от сириус съм поръчвал USB AVR ISP програматор само платката с аттинито и си го сглобих и бачка безпроблем и сега се чудя какво да го правя, защото вече не се занимавам с атмеги и са чудя на кой да го дам |
|
| Страница 1 от 3 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|