Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
* GccApplication1.c
* Author: Admin
*/
#include "Global.h"
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
enum
init=0,
introducere_parola,
parola_1,
parola_2,
parola_gresita
};
int mode=init;
int i,j,k;
void afisare(void)
PORTB=digit[con];
PORTC=cifr[val_digit[con]];
con=(con+1)%4;
void init_Timer0()
TCCR0=0X0B;
TCNT0=0;
OCR0=250;
TIMSK=0X02;
TIFR=0X02;
void init_Timer1()
ICR1=800;
TCCR1A=0XA2;
TCCR1B=0X19;
TCNT1=0X0000;
OCR1A=239;
OCR1B=706;
void init_Timer2()
TCCR2=0X69;
OCR2=125;
ISR(TIMER0_COMP_vect)
int temp=0;
temp=PINA;
contor=(contor+1)%1000;
switch(mode)
case init:
if(contor<500)
val_digit[0]=11;
val_digit[1]=11;
val_digit[2]=11;
val_digit[3]=11;
else
val_digit[0]=13;
val_digit[1]=13;
val_digit[2]=13;
val_digit[3]=13;
if((temp&0x01)==0)
mode=introducere_parola;
val_digit[0]=12;
val_digit[1]=10;
val_digit[2]=13;
val_digit[3]=13;
break;
case introducere_parola:
if(stare_introducere<4)
{
if(contor<500)
val_digit[stare_introducere]=10;
else
val_digit[stare_introducere]=13;
if((temp&0x02)==0)
if(stare_introducere<4)
stare_introducere+=4;
if(stare_but==0)
stare_but=1;
val_digit[stare_introducere%4]=
(val_digit[stare_introducere%4]+1)%10;
else
stare_but=0;
if((temp&0x01)==0)
{
if(stare_but1==0)
stare_but1=1;
stare_introducere=(stare_introducere+1)%4;
else
stare_but1=0;
break;
afisare();
}
int main(void)
PORTC=0XFF;
DDRC=0XFF;
PORTB=0X00;
DDRB=0XFF;
DDRA=0;
PORTA=0xFF;
init_Timer0();
sei();
while(1)