Форум за електроника Форуми Форум за електроника

Форум за електроника
Български форум за електроника, ремонти, схеми, документация
 
 Въпроси/ОтговориВъпроси/Отговори   ТърсенеТърсене   ГрупиГрупи   Регистрирайте сеРегистрирайте се 
 ПрофилПрофил   Влезте, за да видите съобщенията сиВлезте, за да видите съобщенията си   ВходВход 

Service Manual Search :   Enhanced by: Jabse.com : българската търсачка
pic 16f84a
Иди на страница Предишна  1, 2, 3, 4, 5  Следваща
 
Създайте нова тема   Напишете отговор    Форум за електроника Форуми -> Обща електроника - General Electronics
Предишната тема :: Следващата тема  
Автор Съобщение
RM
Опитен потребител
Опитен потребител


Регистриран на: 16 Сеп 2008
Мнения: 650

МнениеПуснато на: Нед Яну 11, 2009 18:50    Заглавие: Отговорете с цитат

Сега в URL-то няма кирилица, книгата е там, повече не мога да направя нищо.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
nikiforiv
Нов потребител
Нов потребител


Регистриран на: 06 Апр 2007
Мнения: 34

МнениеПуснато на: Нед Яну 11, 2009 21:51    Заглавие: Отговорете с цитат

Купи си "PIC Микроконтролери" част1. Там много добре е обяснено точно F84.
http://www.constructor.bg/mk/
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
hunterS
Нов потребител
Нов потребител


Регистриран на: 10 Яну 2009
Мнения: 36

МнениеПуснато на: Нед Яну 11, 2009 22:12    Заглавие: Отговорете с цитат

Ми аз от нея се уча имам я но RM нещо казва че не е както трябва.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
emil74
Опитен потребител
Опитен потребител


Регистриран на: 16 Мар 2007
Мнения: 1106

МнениеПуснато на: Пон Яну 12, 2009 0:46    Заглавие: Отговорете с цитат

Личното ми мнение е, че тази книжка е добра и засяга повечето неща, които са необходими, за да се запознае човек с микроконтролерите и да започне да използва PIC16F84A. Чел съм няколко книжки за начинаещи-чужди издания и не мисля, че я превъзхождат с нещо. Няма как да четеш романи, ако не знаеш азбуката, нали? Започни с тази книжка. После можеш да продължиш с други.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
hunterS
Нов потребител
Нов потребител


Регистриран на: 10 Яну 2009
Мнения: 36

МнениеПуснато на: Пон Яну 12, 2009 18:40    Заглавие: Отговорете с цитат

Добре казано смятам да те послушам а да разкрия какво всъщност целя значи хванал ме е меракът да си направя скромно роботче идеята е да има два инфра сензора отпред и два отзад като са разположени под лек наклон за да играят и за встрани та когато има препядствие в страни робота които ще е на колела да праеи завой на другата посока а когато има препядствие отпред тоест бъдат осветени и двата сензора тои дава назад като трябва при даването назад единия мотор да спре порано от другия като с това ще се получи завъртане в обратна посока и трябва да редува посоките ако при първо препятствие завие на дясно то при второто наляво и после пак надясно и после наляво тоест траекторията е нещо като П образна нещо такова
[_________________
__________________]
[__________________
___________________]

та това ми е целта.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
RM
Опитен потребител
Опитен потребител


Регистриран на: 16 Сеп 2008
Мнения: 650

МнениеПуснато на: Вто Яну 13, 2009 12:58    Заглавие: Отговорете с цитат

Ще ти обърна внимание за последно.
Ако ти уври главата уври, ако ли не, ще си останеш кръгла нула.
Vaclin написа в един от постовете си една негова велика мисъл.
Цитат:
Надскочи възрастта си! Забрави за понятия като лично достойнство, самоуважение и подобни измишльотини. Или крадеш идеи, знания, умения и ти е се тоя какъв си в очите на тези от които крадеш или обичаш себе си ... и ти остава удоволствието цял живот да обичаш себе си. Може да се окаже, че накрая само ти обичаш себе си, защото за другите си станал безумно безполезен.

и още, избери какъв да си.
1 Умен- който се учи от грешките на другите.
2 Глупав- който се учи от собствените.

Първо написания код
Код:
;--------------- Подпрограма "Wait" формира времезадръжка от 16ms --------------------
Wait movlw D'2' ;
movwf Counter ;
clrf TMR0 ;Нулира TMR0
again bcf INTCON,T0IF ;Нулира бит T0IF
loop btfss INTCON,T0IF ;Бит T0IF=1
goto loop ;Не,провери отново
decfsz Counter,f ;
goto again ;Изпълни цикъла отново
return

Тъпо.... тъпо..... тъпо......
за 16mS имаш напълно умрял процессор , дето ти декрементира регистър.
И от тук натам няма смисъл да се поглежда каквото и да е било писано от теб.
За изложеното задание, се подхожда по съвсем друг начин.
1.Имаш таймер с прекъсване при препълване, и вектор който го обслужва.
Използвай го така. при обслужване на прекъсването т.е. край на 16mS си въстанови състоянието на портовете.
2. Имаш прекъсване и вектор който го обслужва на каквато и да е промяна на нивото на PINB.x
Използвай го така : вдигни влаг при промяна от 1 към 0 и след това при промяна от 0 към 1 го свали.
Така създаваш един процес с който не е нужно да следиш PINB.x дали е 0 или 1. Или ако не си разбрал , флага(за флага по надолу) ще е бита който ще ти показва състоянието на порта, без да се обръщаш директно към пина. Това има предимство, че при изпълнението на задачата последваща събитието PINB.x 1->0 , дори и да остане в състояние 0, като свалиш флага(след изпълнението на задачата), съответно задачата няма да се лоопва, а ще се изпълни отново след като се случи PINB.x 1->0, и отново се вдигне флага.
Променливи от булев тип (ми е по лесно да наричам флагове), не е необходимо да са цели регистри, а могат да бъдат бит от регистър, т.е. в един регистър може да следиш 8 променливи от типа true,false.
Ако не можеш да разбереш какво съм ти написал много жалко, ще си завиваш наляво , надясно ще си въртиш регистри, ще се луташ и ще се чудиш защо забива приграмата, демек тъп пикоборец.
Затова не си губи времето а слушай какво ти се казва.
Приключих с тебе.

Модерирано от RC
Предлагам ти да посмекчиш малко тона!
Не се чувствай задължен да отговаряш на хора които ТИ си преценил, че са под ТВОЕТО ниво. Още повече по такъв начин.
Става?
П.П. Освен това когато пишеш постове не е нужно постоянно да "настъпваш" големия бутон. Формата сама ще пренесе думата когато е нужно на следващия ред и по този начин един пост който може да бъде събран на пет реда няма да е 15 (и няма да е нужно някой да ти оправя постоянно постовете).
По-удобно е да се четат нормално написани постове. Не мислиш ли?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
emil74
Опитен потребител
Опитен потребител


Регистриран на: 16 Мар 2007
Мнения: 1106

МнениеПуснато на: Вто Яну 13, 2009 15:02    Заглавие: Отговорете с цитат

RM, човекът сега започва, това го разбираш вероятно,нали? Остави го да напише САМ програма, която РАБОТИ. Да, не е оптималният начин, НО ще я направи САМ. След като разбере достатъчно за какво става дума, ще разбере и КАК да я направи по "правилния" начин. Още не знае основните понятия, но това не е проблем (засега). Поне се опитва да научи нещо. Понякога малко разместване в реда на възприемане на нещата не е вредно, а води до по-лесно осмисляне после(поне при мен е така и доста неща чета привидно хаотично). Без да го приемаш като критика, но мислиш ли, че ще разбере нещо от кода, който си му изпратил(първия)? Личното ми мнение-което не считам за меродавно е: Нека започне, както е започнал, да пита, каквото не му е ясно и като дойде време, да си мине на друг език. Между другото има и нещо, което е полезно в острия ти тон: може точно това да го амбицира повече. Ако се откаже-значи не е за този занаят.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
zmeios
Опитен потребител
Опитен потребител


Регистриран на: 08 Авг 2008
Мнения: 840
Местожителство: София

МнениеПуснато на: Вто Яну 13, 2009 16:24    Заглавие: Отговорете с цитат

Аз не разбрах само, поради каква причина трябваше:

А) Да се караш на човек, който е начинаещ

Б) Да го караш да напише първата си програма с обработка на прекъсвания от таймер, вместо като всички други - да напище еквивалента на Hello World (аз и викам "мигащ светодиод")

В) Да смесваш принципно ВЕРНИЯ факт, че изчакване се прави с таймер, а не с идиотски цикли, със следния лаф:

Цитат:
Забрави за понятия като лично достойнство, самоуважение и подобни измишльотини


...на Ваклин, който хем не е по темата, хем издава известна, да я наречем, емоционална нестабилност!
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
hunterS
Нов потребител
Нов потребител


Регистриран на: 10 Яну 2009
Мнения: 36

МнениеПуснато на: Вто Яну 13, 2009 18:39    Заглавие: Отговорете с цитат

Да ме извинява форума създателите му читателите му и т.н. но май RM обърка човека на който да вкара подобен тон. Еmil74 братле ще продължа с което съм се захванал защото ми е в кръвта и не се отказвам лесно искам да изкажа благодарност на теб на Zmeios и RC за проявеното разбиране и подкрепа, а на господина с мъдрите мисли искам да го запитам един въпрос без да се обиждаш ама ти да не си имал лошо детство бе примерно да са изисквали много от теб и да си бил вечната издънка и да са те хокали така остро, да не би за това да си с подобни отклонения в характера или какво, а. Аз помолих за помощ като човек бе, ти не знаеш ли какво е обноски че си чак толкова несдържан а, ти мутрееш ли кво бил приключил с мене я по-леко с тежкия език уважавам хора които са хора към мен и никои не ми е длъжен. Спирам до тук, защото не съм се регнал тука за да правиме драма още веднаж се извинявам на четателите.

Модерирано от RC
Моля темата да продължи по същество (ако ще продължава)!
Този пост го считаме като "право на отговор" и приключваме с лиричните отклонения!
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
emil74
Опитен потребител
Опитен потребител


Регистриран на: 16 Мар 2007
Мнения: 1106

МнениеПуснато на: Вто Яну 13, 2009 20:31    Заглавие: Отговорете с цитат

По темата: Намерих малко време и изпрограмирах един процесор с кода, който е дал hunterS.
Поведението на програмата е следното: При първоначално пускане PORTB1=0, PORTB2=1, PORTB3=0, PORTB4=1. При подаване на 0 на PORTB5: PORTB1=1, PORTB2=0. При подаване на 0 на PORTB6: PORTB3=1, PORTB4=0. При това се изпълнява само първата настъпила промяна, т.е. или от PORTB5 или от PORTB6.

hunterS, не ми стана много ясно това с 16-те ms от първия ти пост. Светване за толкова кратко време не би могло да се види, нали разбираш това? Реално, при така написана програма, портовете остават в посоченото състояние, докато е натиснат бутонът. Ако искаш да се подаде само импулс, трябва проверка дали бутонът е бил отпуснат и чак ако е бил отпуснат, да се подаде следващ импулс.
За да има възприемане и на двата сигнала, във всеки от циклите трябва да се включи проверка дали не е настъпила промяна и на втория вход.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
Потърси "pic 16f84a" в магазин за електроника Pulsator.bg : БЕЗПЛАТНА ДОСТАВКА над 90 лв.

Покажи мнения от преди:   
Потърси "pic 16f84a" в Интернет



Създайте нова тема   Напишете отговор    Форум за електроника Форуми -> Обща електроника - General Electronics Часовете са според зоната GMT + 2 Часа
Иди на страница Предишна  1, 2, 3, 4, 5  Следваща
Страница 3 от 5

 
Към:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети