Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 18.08.2007, 12:00  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Сообщение от urry
Чем же это ? Ваша Галя балована.
угу именно так
Реклама:
dosikus вне форума  
Непрочитано 19.08.2007, 12:19  
DL36
Вид на жительство
 
Регистрация: 06.10.2006
Сообщений: 329
Сказал спасибо: 4
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
DL36 на пути к лучшему
По умолчанию

Сообщение от 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
DL36 вне форума  
Непрочитано 19.08.2007, 21:35  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
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 Мгц уже НЕОБХОДИМО ставить лонг.
Впрочем, к чему это я...
urry вне форума  
Непрочитано 20.08.2007, 16:10  
DL36
Вид на жительство
 
Регистрация: 06.10.2006
Сообщений: 329
Сказал спасибо: 4
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
DL36 на пути к лучшему
По умолчанию

Сообщение от 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 раза и начал применять лонг.
DL36 вне форума  
Непрочитано 26.10.2009, 23:49  
DjSirko
Прохожий
 
Регистрация: 17.05.2009
Сообщений: 7
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
DjSirko на пути к лучшему
По умолчанию Re: Библиотеки LCD 44780 на С CCS или HI-TECH PICC для PIC16

Видео уроки подключения LCD в протеусе с использованием micro C:
http://smainj.free.fr/tutorial/Tutorail1.rar
http://smainj.free.fr/tutorial/tutorial2.rar
DjSirko вне форума  
Непрочитано 27.10.2009, 08:03  
Vov123
Вид на жительство
 
Регистрация: 03.06.2007
Сообщений: 368
Сказал спасибо: 3
Сказали Спасибо 59 раз(а) в 52 сообщении(ях)
Vov123 на пути к лучшему
По умолчанию Re: Библиотеки LCD 44780 на С CCS или HI-TECH PICC для PIC16

Это очень-очень редкое явление,чтобы кто-то взял и выбросил в интернет собой написанную библиотеку.Берите в руки даташит на индикатор,есть и на русском,разбирайтесь и пишите сами.Потом её очень легко сможете переделать под любые платформы,под avr,arm,8051 и т.д.
Vov123 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
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.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot