c언어 코딩 문의드려욤
파란
질문 제목 :
해석하는 방법을 잘몰라서 글을 올려요~ 자세한 해석 문의드려요
질문 내용 :
#include mega128.h
#include delay.h
//----------------------------------------------ex7.1-----------
/*
Byte count, change;
bit key7;
Byte Exch(void)
{
while(1)
{
key7 = PIND.7;
if(key7 == 0)
{
count++;
delay_ms(1000);
return 1;
}
}
}
void main(void)
{
count = 0;
DDRB = 0xff;
PORTB = 0x00;
DDRD = 0x00;
while(1)
{
key7 = PIND.7;
if(change == 0 && key7 == 1)
{
change = Exch();
}
if(change == 1 && key7 == 1)
{
change = 0;
}
PORTB = count & 0xff;
if(count = 255) count = 0;
}
}
//----------------------------------------------ex7.2-----------
Byte count;
interrupt [EXT_INT0] void ext0_isr(void)
{
count++;
}
void Interrupt_init(void)
{
EICRA=0x02;
EIMSK=0x01;
DDRD.0=0;
SREG|=0x80; //sei();
//sei();
}
void main(void)
{
Interrupt_init();
DDRB=0xFF;
DDRD=0x00;
count = 0;
while(1)
{
PORTB=~count;
if(count =255)
{
count = 0;
}
}
}
*/
//----------------------------------------------ex7.3-----------
bit exchange;
interrupt[EXT_INT0] void ext_int0_isr(void)
{
exchange = ~exchange;
}
void Interrupt_init(void)
{
EICRA = 0x00;
EIMSK = 0x01;
DDRD.0 = 0;
SREG = 0x80; // sei();
}
void main(void)
{
Interrupt_init();
DDRB = 0xFF;
PORTB =0x00;
exchange = 0;
while(1)
{
if(exchange)
{
PORTB = 0xFF;
}
else
{
PORTB = 0x00;
}
}
}
//----------------------------------------------ex7.4-----------
/*
bit Direction;
interrupt [EXT_INT0] void ext_int0_isr(void)
{
Direction = ~Direction;
}
void PB_LShift(void)
{
int i;
Byte Temp;
Temp = 0xFE;
for(i=0; i8; i++)
{
delay_ms(300);
PORTB = Temp;
Temp = (Temp 1) | 0x01;
}
}
void PB_RShift(void)
{
int i;
Byte Temp;
Temp = 0x7F;
for(i=0; i8; i++)
{
delay_ms(300);
PORTB = Temp;
Temp = (Temp 1) | 0x80;
}
}
void Interrupt_init(void)
{
EICRA = 0x02;
EIMSK = 0x01;
DDRD.0 = 0;
SREG |= 0x80; //sei();
}
void main(void)
{
DDRB = 0xFF;
Interrupt_init();
PORTB = 0x00;
Direction = 0;
while(1)
{
if(Direction)
PB_RShift();
else
PB_LShift();
}
}
*/