|
AVR - LED panel - #7 Program |
|
|
Koutek AVR -
KIT #1 - LED panel s ATmega8 (zapojení a programy)
|
|
Napsal uživatel Vašek Král
|
|
Úterý, 04 Říjen 2011 07:09 |
|
.
.
Untitled
#define F_CPU 1000000UL #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #define VZOR 0b00000111 #define DOBA 50 volatile unsigned char jas=64;
void rozsvit(unsigned char co, unsigned char jakdlouho);
int main (void)
{
unsigned char had=0; DDRB = 0xff; TIMSK|= 1; SREG |=(1<<7); TCCR0 = 5; for(;;)
{ had<<=1; if (had<VZOR) had++; rozsvit(had, DOBA); } }
void rozsvit(unsigned char co, unsigned char jakdlouho)
{
for(unsigned char i=0; i<jakdlouho; i++) {
for (unsigned char j=1;j<=128;j++)
{
if(jas>=j) PORTB=co; else PORTB = 0; _delay_us(7); }
}
}
ISR(TIMER0_OVF_vect)
{
TCNT0=157;
if (!(PIND&0b00000100)) {
if (jas==0) jas=1;
else {
if(jas<128) jas<<=1; }
TCNT0=60; }
if (!(PIND&0b00001000)) {
jas>>=1; TCNT0=60; }
}
|