Witam, potrzebuje zmienic ten program zeby dioda zapalała sie i gasła co 0,5s, język [asm] i [c]
[code]
#include "htc.h"
#include "lcd.h"
__CONFIG(BORDIS&PWRTDIS&WDTDIS&XT&UNPROTECT);
#define XTAL_FREQ 4MHZ
#define Freq 4
#include "delay.h"
#define bitset(var,bitno) ((var) /= 1UL < < (bitno))
#define bitclr(var,bitno) ((var) &= ~(1UL < < (bitno)))
extern void Initialize(void);
extern void Toogle(int ind);
extern char bin2str(unsigned char vector);
#define Toogle_Period 250
unsigned char FirstState = 0b10000001;
unsigned char portStates[6];
unsigned char licznik_tpt2 = Toogle_Period;
unsigned char index = 0;
void main(void) {
char i;
unsigned char channel;
unsigned char ch0_value;
portStates[0] = FirstState; //0b10000001;
portStates[1] = 0b01000010;
portStates[2] = 0b00100100;
portStates[3] = 0b00011000;
portStates[4] = 0b01000010;
portStates[5] = 0b00100100;
Initialize();
while(1) {
//main loop is empty
}
}
void Initialize() {
PORTD = 0;
lcd_init(); //lcd_clear() included
lcd_clear();
lcd_goto(0x80);
lcd_puts("Dioda07 LCD T2");
T2CON = 4*Freq - 3; //Tpt2 = 2ms
PR2 = 249;
TMR2IE = 1;
INTCON = 0b11000000; //GIE = 1, PEIE = 1;
}
//#pragma interrupt_level 1
void Toogle(index) {
PORTD = portStates[index];
}
//#pragma interrupt_level 1
void interrupt ProcObsPrzerwania(void) {
if(TMR2IF) {
TMR2IF = 0;
if (--licznik_tpt2 == 0) {
if (index == 5) index = 0;
Toogle(index++);
licznik_tpt2 = Toogle_Period;
//lcd_goto(0x80);
}
}
[/code]
Zmieniony przez - Mikhaił w dniu 2010-01-25 19:39:43
Zmieniony przez - Mikhaił w dniu 2010-01-25 19:39:58
|