|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 11:36 pm
Нуждая се от помощ, за да науча PIC-овете!
| Автор |
Съобщение |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Аз съвсем наскоро,преди малко повече от 2 години започнах да се занимавам с програмиране на микроконтролери и имам пресни впечатления от сблъсъка с пиковете. За доста неща ми се случваше,чета чета по няколко пъти и не мога да включа за какво иде реч. А се занимавам с електроника от дребен келеш а чат пат си пишех програмки за PC от години преди това. Сега наскоро захванах АVR не ми е било проблем да разбера каквото и да е за работатата с процесора още при първо прочитане.
На мнение съм че АVR са по добрия вариант за първи сблъсък с микроконтролерите.
|
| Пон Юли 04, 2005 3:08 pm |
|
 |
|
Васил Сапунджиев
Ранг: Новодошъл
Регистриран на: Сря Юни 01, 2005 10:22 pm Мнения: 123
|
Ако съм разбрал правилно всичките ви мнения и препоръки, теорията ще предавам с AVR. Колегата по практика обаче ще го науча да прави с учениците устройства с PIC-ове още от самото начало, като използва готови трограми, каквито твърдите, че могат да се намерят. Благодаря на всички за вниманието. Аз продължавам с AVR. Все пак никой не ми обясни структурата на програмата. Как се декларират променливи, как и кога се декларират .inc файловете и т.н. Предполагам, че една зъворшена програма за събиране на две 8-битови число, би ми свършила отлична работа. А пък ако някой ми прати пример за циклично четене на десетина клетки и изпращане състоянието им към изход (например ЦАП), ще бъде върха. Предварително благодаря.
|
| Пон Юли 04, 2005 4:40 pm |
|
 |
|
Desert Leo
Ранг: Форумен бог
Регистриран на: Чет Фев 10, 2005 3:25 pm Мнения: 5677 Местоположение: София
|
Не мисля, че това би впечатлило учениците. Освен това, как ще се индицира сумата? Би трябвало да има и индикация, но каква? Какъв ще е ЦАПа? От това ще зависят и програмите или по-точно частта, която работи с периферията.
Иначе, нито програма за събиране на две 8-битови числа, нито пример за циклично четене на десетина клетки и изпращане състоянието им към изход е нещо особено.
Според мен, трябва експериментална платка с няколко цокъла, захранване, (кварц), индикация, бутони, а също и съединители за ЦАП или нещо друго. Трабва да се гони нещо практическо - измерване на температура, напрежение или ток, например. Това не е чак толкова сложно.
Обучението трябва да започне със структурата на програмата, следват командите с примери и накрая конкретна програма, като някои модули могат да се дадат наготово, а едва по-късно да се разяснят - например управлението на LCD.
|
| Пон Юли 04, 2005 5:39 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Ще им преподаваш теория за AVR и практика за PIC?
Е тва е най сигурния начин да не пипнат никога повече в живота си контролер.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Юли 04, 2005 5:55 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Като се позамисля малко, установявам че броят на инструкциите е напълно достатъчен, на всичкото отгоре те не са 34/35 при PIC16, а почти двойно повече, защото не вземате изпредвид факта, че повечето производители на процесори, изброяват за процесорна инструкция конкретния машинен код, тогава като вземем изпредвид че инструкции от рода на
и
са с два различни машинни кода следва че инструкциите са почти двойно повече. Така се брои при Intel,Motorola,Texas. При Atmel не знам как е. Ако пренесем такова изброяване на инструкции и при PIC18, излиза че PIC18 си има около 150 инструкции, срещу 100-тина инструкции при I8051 ядрото, 51 инструкции с 7 адресни формата има MSP430, 120 инструкции при AVR, около 236 при Zilog и т.н.
За мен основната разлика м/у PIC и останалия свят е че при PIC цялата RAM памет е регистрова, това нещо го няма Intel, Texas, Motorola & Atmel.
Писал съм на асемблер през 1999г. таксиметров апарат с PIC16C77 и не срещнах проблеми с банките памет, въпреки че използвах почти цялата RAM и почти цялата програмна памет, което означава че съм превключвал ръчно измежду 4 програмни банки памет и 4 банки RAM ! Всичките сметки и изчисления направих с целочислена 64-битова аритметика, като използвах фиктивна десетична точка, която местих наляво-надясно.
|
| Пон Юли 04, 2005 6:56 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
Ммммм ... всичко добре .. ама за кво ти беше 64 битова аритметика ?????
|
| Пон Юли 04, 2005 7:52 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Основната причина, бе че тогава цените на услугата бяха в хиляди лева и не се знаеше след като се сменят парите дали няма да има пак голяма инфлация. Освен това имаше изискване за обща каса, която сума да се пази не знам си колко месеца и трябваше да е отделен запис, а не да сумирам когато желая всички дневни отчети и да изпиша общата сума до момента. Та затова се застраховах, имах достатъчно RAM и програмна памет и затова направих 64-битова аритметика. Най-готиното беше, че по този начин избягнах проблема на "липсващите пенита", който се получава при недостатъчен брой знаци след десетичната запетая. Всъщност сега се сещам, че не местих десетичната запетая, ами я бях фиксирал, но имаше възможност при цени с няколко цифрени числа да може да се мести десетичната точка.
|
| Пон Юли 04, 2005 8:09 pm |
|
 |
|
Васил Сапунджиев
Ранг: Новодошъл
Регистриран на: Сря Юни 01, 2005 10:22 pm Мнения: 123
|
Не сте ме разбрали правилно. Примерите, за които помолих, ми трябват на мен, за да схвана структурата на програмата за AVR, за да мога да пробвам примерчетата на Studio 4. Иначе в дългогодишната си практика съм установил, кое е интересно и кое не на учениците. За платката съм съгласен, но трябва първо да навляза още малко и да се "огледам".
|
| Пон Юли 04, 2005 9:15 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Това въобще не е така (както спомена и Pirev). И що се отнася до многото инструкции в един CISC процесор - аз мога да се обзаложа, че тук едва ли има човек дето да използва повече от 40% от тия много инструкции (както и всеки С компилатор за тях). Това колко инструкции има един процесор, въобще не е толкова важно - по-важно е каква е архитектурата и какви са перифериите. Едва ли има производител, който да сложи такъв брой инструкции, че да неможе да си свършиш работата с тях.
AVR-те и според мен определено са по-подредени от PIC-вете, но въпреки всичко аз си оставам на мнение, че нито един от тях не е подходящ за първи процесор. Разбира се, това си е само мое мнение  .
|
| Пон Юли 04, 2005 9:17 pm |
|
 |
|
MGBY
Ранг: Популярен
Регистриран на: Сря Дек 22, 2004 2:56 pm Мнения: 347 Местоположение: Хасково
|
@ Dimitar Сигурно е така, ама аз нали си казах от какви съображения си избрах AVR ,още повече тогава си правих дипломна работа и исках нещо по-така от към периферия в смисъл да има повече неща АЦП, SPI ,USART и др така че при мен това е повлия  да не забравяме че тогава имах и софтуер за AVR
|
| Вто Юли 05, 2005 8:32 am |
|
 |
|
Wise
Ранг: Форумен бог
Регистриран на: Нед Дек 19, 2004 6:26 pm Мнения: 1628 Местоположение: Сливен
|
Виждам, че се затяга спорът около избор на процесор. За учебни цели трябва да се избере само един и в никакъв случай да не се месят!
Аз мисля, че AVR са по-добри за този случай. Примерни програми има много в нета. Като предимство на базовите (евтини) варианти бих изтъкнал UART-а и LPM инструкцията. Като възможност за развитие - имам работещи в ТЕЦ системи с 90S8515 и с кернел за реално време.
До Мегите не съм стигал, поради липсата на подобен проект. Но миграцията е лесна. Едва ли в училище ще се наложи да се работи с тях. Достатъчно е 90S8515 с външно (или няколко) ACP (обмен по SPI).
Достатъчно пина има, добър таймер - стига за училище.
Все пак това са ученици - повечето не са чували за закона на ОМ 
|
| Вто Юли 05, 2005 2:49 pm |
|
 |
|
Filo
Ранг: Минаващ
Регистриран на: Чет Юни 16, 2005 11:04 am Мнения: 37
|
Сори за офтопика
@Wise какво точно прави тва ядро за реално време дето си писал ?
|
| Вто Юли 05, 2005 5:36 pm |
|
 |
|
Wise
Ранг: Форумен бог
Регистриран на: Нед Дек 19, 2004 6:26 pm Мнения: 1628 Местоположение: Сливен
|
Ами кернел - реално време.........
Виж Лари Барело.......... някъде бях писал линк и коментар.
Прави точно това, което трябва. Имаше бъг - един май и аз го оправих.
Не знам как да обясня какво е ..........
|
| Вто Юли 05, 2005 7:08 pm |
|
 |
|
BrainStorm
Ранг: Почетен член
Регистриран на: Пон Юли 04, 2005 11:51 pm Мнения: 651 Местоположение: София
|
 .......
.....
|
| Вто Юли 05, 2005 8:40 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Абе вие си продължавате да я тъпчете тая тема  Г-н Сапунджиев, хванете един Proteus (h**p://store2.data.bg/predatormf), стига ви само да разгледате вградените му примерни схеми...може даже един шах да изиграете срещу PIC18F452. Защо се хвърляте на AVR, 35 инструкции на PIC се учат за макс 2 дни. Има всички необходими, няма излишни. В INTEL 8051 например е натъпкано с 100+ инструкции, от които над 50% са ненужни...примерно натикани са всички възможни инструкции за условен преход...преход при Z=0, преход при Z=1, преход при С=0, С=1, и така още доста пъти...в PIC това е направено с две инструкции - btfss и btfsc...това че има малък набор от инструкции не значи че отстъпва на другите процесори от този клас. Друго предимство - известно ви е за какво точно време се изпълнява дадена инструкция, за разлика от доста процесори които съм виждал.
|
| Сря Юли 06, 2005 10:44 am |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 17 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|