|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 10:37 pm
| Автор |
Съобщение |
|
eng.komitov
Ранг: Минаващ
Регистриран на: Нед Окт 25, 2015 1:42 pm Мнения: 23
|
 Re: CRC библиотека
ps66 5ms и 15ms са процедури за време закъснения съответно за 5 и 15мс и като такива трябва да се дефинират с ключовата дума "void ", за да се покаже че не връща стойност и така ги бях дефинирал, но компилатора даде грешка и ги дефинирах като функции връщащи цяло число. А (void) показва че няма формални параметри. 
|
| Пон Окт 26, 2015 9:11 am |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: CRC библиотека
Като начало - не използвай цифра за първи символ в кое да е име, дефинирано от тебе. има достатъчно букви. 'D' за дилей е добър избор 
|
| Пон Окт 26, 2015 9:24 am |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
 Re: CRC библиотека
тъъъй... преди всичко помни, че кода се чете от хора и трябва да е разбираем за тях основно. компилатора му е все тая. в този дух, ако искаш да правиш някакви закъснения, направи си функции. като параметъра е колко точно да е закъснението. и не я прави с for(), ами по някакъв начи, независим от честотата на процесора (таймер примерно) не се подлъгвай да съкращаваш имена на променливи и/или функции (примерно Dms). нито програмата ще стане по-бърза, нито компилирането. ако някой ти погледне кода ще му вкараш мисли. дори и ти, след 1 година ще се пулиш какво е Dms и прави разлика между delay и sleep. някой ден може да почнеш да ползваш RТOS с повече нишки/процеси и един for най-малкото ще разбърка системата. е една малко по-сложна система, ползваща дори само прекъсвания, for е много лоша идея за изчакване на нещо. ПС какъв точно инженер си, Комитов?
|
| Пон Окт 26, 2015 10:27 am |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
 Re: CRC библиотека
ми то именно по горното ме поддтикна да задам въпроса за 5 и 15 ... представям си ако имаш 40 различни време колко функции ще изпишеш  .. които най-вероятно ги има в тоя компилатор във вида на delay_u/m/s
|
| Вто Окт 27, 2015 12:51 am |
|
 |
|
eng.komitov
Ранг: Минаващ
Регистриран на: Нед Окт 25, 2015 1:42 pm Мнения: 23
|
 Re: CRC библиотека
Първо благодаря за съветите и отговорите. Бях забравил, че идентификаторите трябва да започват с буква. Второ написал съм процедура за време на която задаваш времето в микросекунди, тя изчислява и зарежда стойностите в регистрите на таймер 0, но не ми харесва за това написах тези две функции. Инженер по АИУТ съм и от един месец уча и се мъча с програмирането, за да си направя курсовия проект по компютърни системи за управление. Ето какво съм написал: void timer_us(unsigned int time) { unsigned int max_num=65525 ; unsigned int razlika=max_num-time ; TMR0L=razlika; TMR0H=razlika>>8; INTCON=0b10100000 ; T0CON=0b10000000 ; for(T0CON.TMR0ON==0) { NOP
} }
Очаквам предложения как да я редактирам, за да работи. Трябва да отбележа, че времето зависи от честотата.
|
| Вто Окт 27, 2015 1:39 pm |
|
 |
|
eng.komitov
Ранг: Минаващ
Регистриран на: Нед Окт 25, 2015 1:42 pm Мнения: 23
|
 Re: CRC библиотека
Имам синтактична грешка в функция за изчисляване на стойността на даден параметър по стойностите на разредите му. Грешката е на първи ред. float calc_value(int c,x,i,m_1,m_2) { float value; value=c*100+x*10+i+m_1*0.1+m_2*0.01 ; return value; }
|
| Вто Окт 27, 2015 1:47 pm |
|
 |
|
eng.komitov
Ранг: Минаващ
Регистриран на: Нед Окт 25, 2015 1:42 pm Мнения: 23
|
 Re: CRC библиотека
помощ
|
| Вто Окт 27, 2015 1:50 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: CRC библиотека
float calc_value(int c,int x,int i,int m_1,int m_2) ??? освен ако и думата float не е непозната за компилатора.
|
| Вто Окт 27, 2015 1:56 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: CRC библиотека
unsigned int max=65535 Това INTCON за някой ПИК ли е? Мислиш че всички са еднакви ? Предполагам ,си разрешил прекъсване по таймер 0. Съответно може би имаш, може би нямаш дефинирана ISR за това прекъсване. Ако ще следиш кога е препълнил - би трябвало да е някой флаг с буква F в името си, а ти следиш нещо , което е по-скоро флаг за разрешение. И така става, aко сетваш флага там , където изчисляваш 'razlika', a го ресетваш в ISR. От друга страна ,използването на "for" за изчакване си е екстравагантност. Има си while, repeat , do или подобни.
|
| Вто Окт 27, 2015 2:04 pm |
|
 |
|
eng.komitov
Ранг: Минаващ
Регистриран на: Нед Окт 25, 2015 1:42 pm Мнения: 23
|
 Re: CRC библиотека
Думата float е позната на компилатора и за това питам каква би могла да е грешката.
|
| Вто Окт 27, 2015 3:06 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: CRC библиотека
Може би ,че не си указал типа на параметрите - за всеки поотделно.
|
| Вто Окт 27, 2015 3:08 pm |
|
 |
|
tolstolob
Ранг: Ориентиран
Регистриран на: Вто Фев 06, 2007 2:45 am Мнения: 263
|
 Re: CRC библиотека
|
| Вто Окт 27, 2015 3:21 pm |
|
 |
|
eng.komitov
Ранг: Минаващ
Регистриран на: Нед Окт 25, 2015 1:42 pm Мнения: 23
|
 Re: CRC библиотека
INTCON е точно на контролера който искам да програмирам и предположението ти е вярно имам ISR , в което проверявам флага за препълване и спирам таимера точно това следя с условието в цикъла (дали е спрян тамера). Относно стойността 65225 не е случайна, изчислих времето за изчисляване на разликата, зареждането в регистрите и разрешаване на прекъсванията. Да прав си, че с for не е добре, а как ще стане с while
|
| Вто Окт 27, 2015 3:22 pm |
|
 |
|
eng.komitov
Ранг: Минаващ
Регистриран на: Нед Окт 25, 2015 1:42 pm Мнения: 23
|
 Re: CRC библиотека
Да трябвало е да дефинирам типа на всеки параметър по отделно. Благодаря.
|
| Вто Окт 27, 2015 3:28 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: CRC библиотека
while (timer_is_on) ; Е- като си изчислявал толкова прецизно, изчисли ли и времето за извикване на функцията 
|
| Вто Окт 27, 2015 3:28 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 9 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|