| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Различни въпроси http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=8583 |
Страница 1 от 2 |
| Автор: | Mhz [ Пет Фев 25, 2011 4:36 pm ] |
| Заглавие: | Различни въпроси |
Може ли някой да ми обясни точно работи тази функция.И как се "оразмерява" да работи в us, ms и s. |
|
| Автор: | ike [ Пет Фев 25, 2011 4:50 pm ] |
| Заглавие: | |
Почни малко по от далече - Платформа, IDE, компилатор, процесор и т.н. |
|
| Автор: | Mhz [ Пет Фев 25, 2011 5:02 pm ] | |||||||||
| Заглавие: | ||||||||||
PIC16F84A HI-TECH C MPLAB идеята е да управлявам 7 сегментен индикатор , правейки брояч от 0 до 9 секунди , ясно ми е всичко как трябва да стане , освен как да го направя да изчаква 1 секунда, а и като цяло искам да разбера как работи тази функция. |
||||||||||
| Автор: | relsys [ Пет Фев 25, 2011 5:59 pm ] | ||||||||||||||||||
| Заглавие: | |||||||||||||||||||
Калкулира няколко цикъла, според тактовата честота и я пльосва 'inline' за да не се губи/пресмята и времето за викане на функция. От където пък следва, че ако я използваш на няколко места кодът ще нараства линейно на броя извиквания. Като цяло не е това подхода, защото така ще загубиш 1s процесорно време. Използвай таймер. Просто му проверявай стойността и при достигане на необходимата стойност сменяй цифрата и нулирай таймера. |
|||||||||||||||||||
| Автор: | Cekins [ Пет Фев 25, 2011 6:23 pm ] |
| Заглавие: | |
Недай си боже и ако се обработват прекъсвания - тая 1 секунда става + Х микро/мили секунди, където Х е голямо неизвестно Проверката на таймера пък също не е най-удачния вариант - прави се със запис на предварително изчислена стойност в таймера и той като се препълни да цъкне прекъсване. А ако сложи кварц 2.097152 MHz с таймер1 ще може да прави и 1 секунда точно. А 4.194304 MHz има да се продават - с него става 2 Hz. |
|
| Автор: | relsys [ Пет Фев 25, 2011 9:20 pm ] | |||||||||
| Заглавие: | ||||||||||
Това е ясно Цекинс, ама сметнах, че ще го хвърлим много надълбоко. |
||||||||||
| Автор: | Cekins [ Пет Фев 25, 2011 11:17 pm ] |
| Заглавие: | |
Че то плитко има ли? То тва да не е РС? От самото начало трябва да се свиква да се броят инструкциите |
|
| Автор: | relsys [ Съб Фев 26, 2011 12:42 pm ] | |||||||||
| Заглавие: | ||||||||||
Не е точно така. Обучението трябва да бъде последователно и методично, от по-лесно към по сложно. И да се повтарят нещата с цел получаване на трайни познания. Като съответно трябва да е съобразено с текущото ниво на развитие на мозъка в дадената област. |
||||||||||
| Автор: | Mhz [ Съб Фев 26, 2011 5:52 pm ] | |||||||||
| Заглавие: | ||||||||||
От известно време се боря с Timer0 ама без успех ,
Дайте някоя идея как да го направя да дели до 1hz ... 4Mhz ми е кварца |
||||||||||
| Автор: | fan [ Съб Фев 26, 2011 8:17 pm ] | |||||||||
| Заглавие: | ||||||||||
Ами това, което си написал върши работа, но за да го видиш визуално трябва лека преработка.
|
||||||||||
| Автор: | relsys [ Съб Фев 26, 2011 8:57 pm ] | |||||||||
| Заглавие: | ||||||||||
И за да не разхищаваме процесорното време, аз бих го написал така:
|
||||||||||
| Автор: | Mhz [ Съб Фев 26, 2011 9:52 pm ] |
| Заглавие: | |
Сменям името на темата, защото мисля да задавам тук и други глупави въпроси. |
|
| Автор: | a_stankov [ Нед Фев 27, 2011 10:45 am ] |
| Заглавие: | |
За TMR0: Tover=(256-(TMR0)) x 1/Kpc x 4/Fosc Fosc - е в Mhz Променяйки стойността на регистъра TMR0 и/или коефициента на прескалера (Kpc), можеш да променяш времето са препълване на таймера. |
|
| Автор: | Mhz [ Нед Фев 27, 2011 7:09 pm ] |
| Заглавие: | |
Добре как да изравня дължината на импулса и паузата... защото получавам дълъг импулс и къса пауза и обратното? Също как да го направя така че да го викам като функция като ми трябва закъснение 1 секунда? |
|
| Автор: | a_stankov [ Нед Фев 27, 2011 10:02 pm ] |
| Заглавие: | |
Я постни някакъв примерен код от това което пишеш за да ти помогнем практически. Принципно точно HI-Tech точно не съм ползвал но CCS и MicroC имат готови функции за време закъснение от ms и us. Delay_ms(x); Delay_us(x); Като х може да има стойност до 65536. |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|