rozjaśnianie, ściemnianie LED

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Wrangler
-
Posty: 6
Rejestracja: 14 lis 2011, 13:08
Lokalizacja: Wlkp
Kontakt:

rozjaśnianie, ściemnianie LED

Post autor: Wrangler » 06 kwie 2012, 9:51

Witam,

Kod: Zaznacz cały

#include <avr/io.h>
#include <util/delay.h>
 
 
#define PRZYCISK0 _BV(0)
#define PRZYCISK1 _BV(1)
#define PRZYCISK2 _BV(2)
#define PRZYCISK3 _BV(3)
#define LED _BV(3)
 
 
int main(void)
{
DDRA = PRZYCISK0|PRZYCISK1|PRZYCISK2|PRZYCISK3;
PORTA = PRZYCISK0|PRZYCISK1|PRZYCISK2|PRZYCISK3;
DDRB |= LED;
 
 
TCCR0 |= (1<<WGM01)|(1<<WGM00);
TCCR0 |= (1<<COM01)|(1<<COM00);
TCCR0 |= (1<<CS00);
 
OCR0=255;
 
while(1)
{
 
 
 
while(bit_is_clear(PINA,2)) OCR0 = 0; //wyłącz
 
 
 
while(bit_is_clear(PINA,0) && OCR0>0) //ściemniacz
        {      
                OCR0--;
                _delay_ms(10);                           
        }
 
while(bit_is_clear(PINA,1) && OCR0<255) //rozjaśniacz
        {      
                OCR0++;
                _delay_ms(10);                           
        }
 
while(bit_is_clear(PINA,3)) OCR0 = 255; //załącz
 
 
 
}
}
 
GeSHi
Chciałem zrobić załącz/wyłącz na 1 przycisku, ale XORem na rejestrze OCR nie pójdzie.
Może macie jakiś pomysł jak to zrealizować na jednym?
Fragment kodu mile widziany, z góry dzięki.

Pablo_STG
-
Posty: 5
Rejestracja: 19 paź 2011, 20:02
Lokalizacja: Łódź

Post autor: Pablo_STG » 07 kwie 2012, 21:05

A jaki masz ten przycisk, może po prostu, po inżyniersku zastosować bistabilny przycisk i po sprawie ;)

ODPOWIEDZ