|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 10:16 pm
Бейсик за микроконтролери
| Автор |
Съобщение |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Тони в съседната тема обяснява как се прави закъснение 10mS:
"на всяко ..... таймерите се сетват с setup_timer() виж хелпа, примерно :
setup_timer_0(RTCC_DIV_2); това ти сетва таймер 0 да работи в режим на броя1 с вътрешен клок с прескалер 2. Т.е. ако честотата ти е 4 Mhz на кварца, вътрешната ти е 1 Mhz, т.е. делено на 2 тймера ще се тактува с 500 khz, или ще се инкрементва на всеки 2 us. Таймера е 8 битов, т.е. препълване ще имаш на 512 us. В този случай за 10 ms имаш 10/256~0.039 мс, т.е. трябва да делиш на 39, такъв делител няма, избираш по големия, 64 и получаваш. 1 Mhz/64 = 15.625 Khz = 0.064 ms Сега смяташ колко ти трябва за да получиш 10 мс, 10/0.064 = 156,25 или 156. Т.е. трябва да сложиш таймера на да дели на 64 и да заредиш в него 100, за да имаш 156 такта до препълване.
setup_timer_0(RTCC_DIV_64);
set_timer0(100);
след това във прекъсването също трябва да го зареждш със тази стойност.
#INT_RTCC
RTC_ISR()
{
SET_TIMER0(100);
start adc conversion
}
вече в зависимост на колко делиш и колко ти се губи в прекъсване може да се наложи да коригираш стойността която зареждаш, тъй като таймера може да се е инкрементнал вече един или няколко пъти. Просто го четеш и вадиш това кеото си прочел от това което искаш да заредиш, редно е и да си предивдиш времето за изчитане на таймера и калкулиране на това кето ще зареждаш както и времето за зареждане.
В случая ще има прекъсване на всеки 156*0.064 мс или на вски 9.984 мс. За по голяма точност трябва да си избереш подходящ кварц."
В Протона е :
DELAYMS 10
|
| Нед Юли 09, 2006 1:12 pm |
|
 |
|
fuser
Ранг: Ориентиран
Регистриран на: Сря Юли 05, 2006 1:54 pm Мнения: 279
|
е, да ... а на асемблер ще падне доста писане
|
| Нед Юли 09, 2006 1:15 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Относно компилаторите.
За всяка платформа си има компилатор който е най добър.
Обикновенно IAR е сред най добрите за повечето платформи. Но е най тежък за усвояване. Много особенности и работата с него е доста зор докато свикнеш.
за PIC е спорен въпроса. Hi-Tech,CCS,IAR който да вземеш ще върши работа. При PIC18 везните се накланят към IAR повече.
за AVR и MSP430 еднозначно IAR.
В библиотека има един pdf дето го бях постнал преди доста време. Нещо като кратък справочник за синтаксиса на C на български. Изтегли си го ще ти е от полза.
|
| Нед Юли 09, 2006 1:20 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Горния пример със Тони е ценен и с още нещо.
Той илюстрира как опитен професионалист греши .
А натова :
DELAYMS 10
Просто няма какво да му сбъркаш
|
| Нед Юли 09, 2006 1:29 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Какъвти асемблер това е С
Чесна да ти кажа понякога невиждам разлика
|
| Нед Юли 09, 2006 1:31 pm |
|
 |
|
fuser
Ранг: Ориентиран
Регистриран на: Сря Юли 05, 2006 1:54 pm Мнения: 279
|
а какви са отзивите за компилатора на Микрочип???
|
| Нед Юли 09, 2006 1:32 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
противоречиви
Долу горе ставал. Аз го пробвах преди ама не ми хареса изобщо.
Hi-tech си е класика,сега е интегриран с eclipse средата изглежда доста приятно но аз лично нямам наблюдения доколко е удобно да се работи така.
Но поработи с microC-то да посвикнеш с езика и тогава ще ти е лесно да минеш на нещо друго.
|
| Нед Юли 09, 2006 1:41 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
CCS не е лош, верно има си някои косури, и определено не е истински С кмпилатор, в смисъл нямаш възможност за оптимизации, не че няма параметур амане видам ралзика, нямаш make фаил, коеот пък не е толкова зле, но в същото време е малко по странно когато проекта ти е от много файлове .. абе .... но е съвсем приемлив с оглед пика и неговоте възможности.
|
| Нед Юли 09, 2006 1:45 pm |
|
 |
|
fuser
Ранг: Ориентиран
Регистриран на: Сря Юли 05, 2006 1:54 pm Мнения: 279
|
трябва да се започне от някъде  смята полека-лека да се посветя на език от високо ниво
|
| Нед Юли 09, 2006 1:53 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
Ами относно езика от високо ниво мисля няма много за мислене и маяне, С трябва да е според мен, а вече за компилатора ... зависи .. примерно за х51 кейла е доста добър, да не кажа че е сигурно е най-доброто. За ПИК е много относително, но принципно ако искаш да пишеш на С за много платформи .. в това отношение може би IAR е най удачно, тъй като има кмпилатори почти за всичко. Лично на мен не ми допадна никак, трябва си повече време д му свикне човек, така че си позлвам keil за 51 CCS за PIC. IAR го мъчих за TI обачре нещо не ме кефи. KEIL правят и за ARM ...въпрос на избор
|
| Нед Юли 09, 2006 2:02 pm |
|
 |
|
fuser
Ранг: Ориентиран
Регистриран на: Сря Юли 05, 2006 1:54 pm Мнения: 279
|
Хиляди благодарности за съветите
|
| Нед Юли 09, 2006 2:11 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Bascom-avr да го споменем и него за атмелите.
За пиковете е ясно.
Все пак темата е за Бейсик.
П.П.
Тони няма ли да си коригираш Обяснението за 10ms?
|
| Нед Юли 09, 2006 2:14 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
@rumen, това дето ToHu го обяснява в съседната тема май не си го разбрал. Обяснява как софтуерно да си направиш допълнителен таймер, а не как да направи закъснение 10ms. Във CCS компилатора също както в Proton има някой вградени функции, които ти спестяват преоткриването на колелото, за да направиш софтуерно закъснение 10ms в CCS пишеш:
...също толкова просто както при Proton.
Мисля, че си доста заслепен от тоя Proton, вземи отвори Help-а на CCS и няколко примера поне да знаеш какво изпускаш
PS. Извинявайте, че ви отклонявам темата от Basic, но не се сдържах
|
| Нед Юли 09, 2006 2:22 pm |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
@rumen мисля че е редно първо да изясниш за себе си поне разликите между компилатор, развойна среда, библиотека с готови функции и тогава да даваш съвети на хора без опит или да спориш с хора които имат доста повече опит от тебе в програмирането. Единственната причина поради която си позволявам да ти дам този съвет е защото го обърна вече на избиване на комплекси с този бейсик.
Аз лично бих стоял надалеч от решения като:
DELAYMS 10
На теб щом ти върши работа кефи му се. Но като допреш един ден(ако въобще допреш) до сериозна работа, а не само да се бъзикаш "за отмора"  ще разбереш народната поговорка:
"Да би 255 шамара изял, но да би от бейсик далеч стоял"
Повтарям не заблуждавай хората с този бейсик и Протон.
То най-лесно и достъпно е една чикия да си удариш ама и ти гледаш нещо женско да барнеш.
PS: Сега гледам не съм единствен дето не съм се сдържал
|
| Нед Юли 09, 2006 2:32 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
"Бейсик за микроконтролери"
Четенето на темата не задължително.
А прочитането не ви задължава да пишете. Още повече ако незнаете какво да напишете.(по темата)
|
| Нед Юли 09, 2006 3:10 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 3 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|