Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
* File: newmain.c
* Author: meche1
*
* Created on September 13, 2017, 9:55 AM
*/
#define _XTAL_FREQ 8000000
#include "terrawood_alarm_2.h"
void Timer_ISR();
void Initialize_Timer()
void Reset_Timer_Variables();
void main(void)
{
int milisecond=0, second=0, minute=0, hour=0;
Initialize_Timer();
TRISB0=1;
TRISB4=0;
TRISB5=0;
while(RB0==0)
{
RB5=0;
RB4=1;
while(minute<=2)
Reset_Timer_Variables();
RB5=0;
RB4=0;
while(minute<=15)
Reset_Timer_Variables();
}
if(RB0==1)
{
RB5=1;
RB4=1;
while(minute<=2)
Reset_Timer_Variables();
RB5=0;
RB4=0;
while(hour<=2);
Reset_Timer_Variables();
}
}
void Initialize_Timer()
{
OPTION_REG=(1<<2);
TMR0=100;
TMR0IE=1;
GIE=1;
}
void Reset_Timer_Variables()
{
milisecond=0;
second=0;
minute=0;
hour=0;
}
void Timer_ISR()
{
milisecond++;
if(milisecond==1000)
{
second++;
milisecond=0;
}
if(second==60)
{
minute++;
second=0;
}
if(minute==60)
{
hour++;
minute=0;
}
}
// 1ms at 8Mhz
void InitTimer0(){
OPTION_REG = 0x82;
TMR0 = 6;
INTCON = 0xA0;
}
void Interrupt(){
if (TMR0IF_bit){
milisecond++;
if(milisecond==1000)
{
second++;
milisecond=0;
}
if(second==60)
{
minute++;
second=0;
}
if(minute==60)
{
hour++;
minute=0;
}
}
TMR0 = 6;
TMR0IF_bit = 0;
}
...for timer0 delay of 1 hour for 8 bit mcu such as pic16f84a
Code C - [expand] 1 2 3 4 5 6 7 8 9 //Timer1 Registers Prescaler= 8 - TMR1 Preset = 3036 - Freq = 4.00 Hz - Period = 0.250000 seconds T1CON.T1CKPS1 = 1; // bits 5-4 Prescaler Rate Select bits T1CON.T1CKPS0 = 1; // bit 4 T1CON.T1OSCEN = 1; // bit 3 Timer1 Oscillator Enable Control bit 1 = on T1CON.T1SYNC = 1; // bit 2 Timer1 External Clock Input Synchronization Control bit...1 = Do not synchronize external clock input T1CON.TMR1CS = 0; // bit 1 Timer1 Clock Source Select bit...0 = Internal clock (FOSC/4) T1CON.TMR1ON = 1; // bit 0 enables timer TMR1H = 11; // preset for timer1 MSB register TMR1L = 220; // preset for timer1 LSB register
#define _XTAL_FREQ 8000000
#include<htc.h>
void main(void)
{
TRISB0=1;
TRISB4=0;
TRISB5=0;
while(1)
{
while(RB0==1)
{
RB5=1;
RB4=1;
for(int x=0; x<=47;x++)//delay for 2 minutes
__delay_ms(2000);
RB5=0;
RB4=0;
for(int x=0; x<=2760; x++)//delay for 2 hours
__delay_ms(2000);
if(RB0==0)
{
RB5=0;
RB4=1;
for(int x=0; x<=47; x++)//delay for 2 mins
__delay_ms(2000);
RB5=0;
RB4=0;
for(int x=0; x<=120; x++)//delay for approx. 5 mins
__delay_ms(2000);
}
}
}
}