Timer0 для 16F877

C

crowinu

Guest
Привіт хлопці,

Я роблю проект для моєї шкільної (ПОС контрольованої диммер) і мені потрібно використовувати Timer0.Мені потрібна допомога у використанні Timer0.Інша річ я на асемблері не з нейтральних, я думаю, воно робить його більш diffcult.Мені потрібно зробити щось подібне до цього, викликається кожного 1S малого рутини і repeatitly це зробити.
10x за будь-яку допомогу

crowinu.

 
Відрегулюйте Timer0 дільника 1 / 16.Clock Freq.Повинно бути 4 МГц.Timer0 кроком один раз 16x1us.воно займає 4,096 мс для 256 кол.Включити Timer0 переривання.І приріст реєстрації (8-біт) перервати службу в рутину Timer0.Коли Регістр вартості досягає 244 (пройшов час складає близько 0,999424 сек), Відкритий реєстр і встановити прапор.
В основному рутинної перевірки прапор, якщо воно вірне, зателефонуйте у вашу підпрограму.

 
Дорогий друже у тієї ж проблемою, будь ласка можливо, ви помістіть код в C CCS, щоб показати, як можна зробити??

 
Привіт я докладу друг привів код, використовуючи Timer0. Я звик HiTech компілятор C

# Включити <pic.h>
/*---------------------------*/

Пустота TMR0Init ();

/*---------------------------*/

# DEFINE TMR0_TICK 250
# DEFINE TMR0_PRESCALE 3 / / (FOSC = 16MHz, Prescale = 3), (FOSC = 4MHz, Prescale = 1)

# DEFINE TMR0_RELOAD (255 - (TMR0_TICK-6))
# DEFINE світлодіодні RD0

/*---------------------------*/

статичного знака Int Count;

/*---------------------------*// / Void Main () ()

/*---------------------------*/

Пустота TMR0Init () (
TMR0 = 0; / / Відкритий TMR0
INTCON = 0; / / Вимкнути всі переривання і чітко T0IF
ВАРІАНТ & = 0xC0; / / відключення мірою 6 бітів налаштувати tmr0
ВАРІАНТ | = TMR0_PRESCALE; / / встановлення дільника на 1

<img src="http://www.edaboard.com/images/smiles/icon_mad.gif" alt="Божевільний" border="0" />T0IE = 1; / / дозволяємо переривання TMR0
GIE = 1; / / Включення глобальних переривань
)
/*---------------------------*/

Пустота переривань
tmr0_isr (void) (

якщо (TMR0IF) (
TMR0 = TMR0_RELOAD;

Count ;
якщо (кількість == 1000) (
= LED! LED; / / Включає світлодіодні раз на секунду
Count = 0;
)

T0IF = 0;
)
)
/*---------------------------*/

 

Welcome to EDABoard.com

Sponsor

Back
Top