| Автор |
Съобщение |
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 1:01 pm Мнения: 2251
|
 Въпрос от начинаещ
От скоро се занимавам с микроконтролери. Намерих си книжка за програмиране на микроконтролери на С. Може ли някой да ми обясни как да задам източник на прекъсване? Примерно като се промени състоянието на порт В бит 0 от low към high, да се регистрира прекъсване. В книжката дето я чета това не е показано. Има само стандартните прекъсвания за контролера, който използват - PIC 16F877.
Трябва ми да накарам контролера да прави различни неща при подаване на импулс от бутон към различни входове. Искам като подам импулс да се задейства различно прекъсване и да си изпълни там, каквото трябва. За това, което правя трябва да задам поне 20 източника(20 пина).
Благодаря!
|
| Сря Авг 19, 2009 7:15 pm |
|
 |
|
bobyper
Ранг: Ориентиран
Регистриран на: Вто Яну 31, 2006 11:11 pm Мнения: 295 Местоположение: София
|
 Re: Въпрос от начинаещ
За четене на бутони не е необходимо прекъсване. Това са бавни процеси които се четат чрез сканиране на порта през определено време
|
| Сря Авг 19, 2009 9:38 pm |
|
 |
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 1:01 pm Мнения: 2251
|
Да обаче понеже трябва да регистрирам от кое точно краче идва, ако сканирам целия порт ще трябва да си направя алгоритъм за това. Мисля че ще стане по-лесно ако дефинирам всеки пин като източник на прекъсване. Като идея това със сканирането може да стане. Не е точно, както аз искам, но мисля че ще стане.
А иначе има ли начин да си дефинирам мои източници на прекъсване???
|
| Сря Авг 19, 2009 11:44 pm |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
Така или иначе, всичко ще отива в едно прекъсване и ще трябва, щеш-не щеш, да си сканираш порта за да видиш конкретния пин, от който е дошло прекъсването.
|
| Чет Авг 20, 2009 10:35 am |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
Експандерите от типа на MCP23S17 поддържат прекъсване по промяна на всеки пин.
|
| Чет Авг 20, 2009 11:29 am |
|
 |
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 1:01 pm Мнения: 2251
|
Това го направих. Може ли да ми кажете какъв интерфейс да използвам за комуникация м/у много контролери -примерно 4. Трябва да могат да си обменят малка по обем информация, като се използват, колкото може по- малко входове. Понеже има 2 мастъра(главни) и 2 второстепенни(слейв). Обмена на инфо трябва да може да се извършва всеки с всеки. Харесах си И2С, но не съм много сигурен дали е подходящо. А и не ми емного ясно как точно се инициализират чиповете. Може ли да дадете мнение по въпроса и ако може някакъв линк, от където да се образовам??? 
|
| Чет Авг 20, 2009 1:54 pm |
|
 |
|
bobyper
Ранг: Ориентиран
Регистриран на: Вто Яну 31, 2006 11:11 pm Мнения: 295 Местоположение: София
|
Избора на интерфейс зависи не само от броя на контролерите но и от разстоянието между тях както и в каква среда ще работят, дали вкъщи или в индустриална зашумена среда.
|
| Чет Авг 20, 2009 6:44 pm |
|
 |
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 1:01 pm Мнения: 2251
|
Средата не е зашумена. Максималното разстояние е 2 метра.
|
| Чет Авг 20, 2009 8:25 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
Ползвай CANBUS, тъкмо ще го изучиш.
|
| Чет Авг 20, 2009 9:56 pm |
|
 |
|
new_beginner
Ранг: Минаващ
Регистриран на: Съб Ное 15, 2008 10:00 am Мнения: 12
|
Каква книжка за програмиране на микроконтролери на С ползваш?
|
| Съб Авг 22, 2009 5:13 pm |
|
 |
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 1:01 pm Мнения: 2251
|
Ами изтеглих си Programming 8Bit PIC Micro Controllers in C и Advanced PIC Microcontroller Projects in C
|
| Сря Авг 26, 2009 2:18 pm |
|
 |
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 1:01 pm Мнения: 2251
|
да попитам нещо друго Като дам на MPlab да конпилира нещо ми изписва
*** Error 24 "C:\Users\User\Desktop\proj\16F876A.h" Line 2(9,19): Unknown device type -- Try PCM
1 Errors, 0 Warnings.
Сложил съм файла на чипа в проекта и съм гозаредил в хедъра. Пробвах с различни чипове. Мисля че версията на MPlab не е демо.
Какво да правя???
|
| Сря Сеп 02, 2009 8:53 am |
|
 |
|
sv_shady
Ранг: Популярен
Регистриран на: Сря Окт 11, 2006 8:19 pm Мнения: 373 Местоположение: София/Edinburgh, UK
|
Въпроса е дали версията на CCS е демо, защото ако е не можеш да програмираш 16Ф876а, дори и да имаш хедър файла. Другия вариянт е да си объркал компилатора, който ти трябва. Ето да разгледаш кой компилатор за кое семейство е : http://www.ccsinfo.com/content.php?page=Purchasing1
|
| Сря Сеп 02, 2009 11:09 am |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
|
| Сря Сеп 02, 2009 11:46 am |
|
|