Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
18.08.2007, 12:00
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Сообщение от urry
|
Чем же это ? Ваша Галя балована.
|
угу именно так
|
|
|
|
19.08.2007, 12:19
|
|
Вид на жительство
Регистрация: 06.10.2006
Сообщений: 329
Сказал спасибо: 4
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
|
Сообщение от urry
|
В самплах хайтековского компилятора.
Присоединяю.
|
Для реализации задержек, я бы порекомендовал следующий код:
Код:
|
/*
* MAKE SURE this code is compiled with full optimization!!!
*/
#include "GonfigProjekt.h" В этом файле я прописываю реальную частоту устройства
#ifndef XTAL_FREQ
#define XTAL_FREQ 4MHZ /* Crystal frequency in MHz */
#endif
#define MHZ *1000L /* number of kHz in a MHz */
#define KHZ *1 /* number of kHz in a kHz */
//можно это использовать
#define DelayUs(x) { unsigned char _dcnt;
_dcnt = (((long)(x))*(long)(XTAL_FREQ))/(long)(12MHZ);
while(--_dcnt != 0)
continue; }
//а можно и этот вариант, кому как нравится.
/*
#define DelayUs1v(x)
{
unsigned char _dcnt;
_dcnt = (unsigned char)((x)*((XTAL_FREQ*1.0)/(12MHZ)));
while(--_dcnt != 0) continue;
}
*/
extern void DelayMs(unsigned char);
#endif |
В отличии от ХАйтека, приведенный фрагмент ошибку дает не более1%
Прикрепленный файл: 5362012.rar
|
|
|
|
19.08.2007, 21:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Сравним Хайтековский
Код:
|
#define DelayUs(x) { unsigned char _dcnt;
_dcnt = (x)*((XTAL_FREQ)/(12MHZ));
while(--_dcnt != 0)
continue; } |
и здесь
Код:
|
#define DelayUs(x) { unsigned char _dcnt;
_dcnt = (((long)(x))*(long)(XTAL_FREQ))/(long)(12MHZ);
while(--_dcnt != 0)
continue; } |
Дело, насколько я понимаю, не в ошибке по точности, а в переполнении - при частоте кварца больше 16.384 Мгц уже НЕОБХОДИМО ставить лонг.
Впрочем, к чему это я...
|
|
|
|
20.08.2007, 16:10
|
|
Вид на жительство
Регистрация: 06.10.2006
Сообщений: 329
Сказал спасибо: 4
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
|
Сообщение от urry
|
Сравним Хайтековский
Код:
|
#define DelayUs(x) { unsigned char _dcnt;
_dcnt = (x)*((XTAL_FREQ)/(12MHZ));
while(--_dcnt != 0)
continue; } |
и здесь
Код:
|
#define DelayUs(x) { unsigned char _dcnt;
_dcnt = (((long)(x))*(long)(XTAL_FREQ))/(long)(12MHZ);
while(--_dcnt != 0)
continue; } |
Дело, насколько я понимаю, не в ошибке по точности, а в переполнении - при частоте кварца больше 16.384 Мгц уже НЕОБХОДИМО ставить лонг.
Впрочем, к чему это я...
|
Поскольку вычисляется на этапе компиляции, лучше сразу лонг.
А проблема в точности при выполнении целочисленного деления. Такую задержку выполняю редко, но натолкнулся как то на ошибку в 1.98 раза и начал применять лонг.
|
|
|
|
26.10.2009, 23:49
|
|
Прохожий
Регистрация: 17.05.2009
Сообщений: 7
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Библиотеки LCD 44780 на С CCS или HI-TECH PICC для PIC16
|
|
|
|
27.10.2009, 08:03
|
|
Вид на жительство
Регистрация: 03.06.2007
Сообщений: 368
Сказал спасибо: 3
Сказали Спасибо 59 раз(а) в 52 сообщении(ях)
|
Re: Библиотеки LCD 44780 на С CCS или HI-TECH PICC для PIC16
Это очень-очень редкое явление,чтобы кто-то взял и выбросил в интернет собой написанную библиотеку.Берите в руки даташит на индикатор,есть и на русском,разбирайтесь и пишите сами.Потом её очень легко сможете переделать под любые платформы,под avr,arm,8051 и т.д.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Си, IAR AVR & Hi Tech PICC
|
picavr |
Микроконтроллеры, АЦП, память и т.д |
47 |
25.02.2014 12:20 |
HI-TECH PICC™ Enterprise Edition (new!!!)???
|
shihaidong |
Микроконтроллеры, АЦП, память и т.д |
14 |
30.12.2011 15:45 |
CCS PICC
|
dosikus |
Микроконтроллеры, АЦП, память и т.д |
30 |
16.10.2009 20:22 |
Правильная задержка в HI-TECH PIC16
|
vsvetlov |
Микроконтроллеры, АЦП, память и т.д |
1 |
06.09.2007 13:59 |
PIC18F.., HI-TECH PICC-18 и MPLAB
|
avartemiy |
Микроконтроллеры, АЦП, память и т.д |
11 |
20.08.2007 02:35 |
Часовой пояс GMT +4, время: 16:08.
|
|