ATtiny13 – gecikmə funksiyası ilə yanıb-sönən LED
Bu kiçik layihə LED-in ATtiny13 mikrokontrollerinə necə ibirləşəcəyini və sayrışması üçün sadə bir proqramın necə yazılacağını göstərir. Kod Github-dadır, buraya vurun.
LEDs are widely used for various display functions and can be directly (not quite directly, through the resistor) driven from the pins of AVR chip. In our circuit a LED is connected to PB0 and it is made to blink for roughly every second by using delay function.
LEDlər müxtəlif display funksiyaları üçün geniş istifadə olunur və birbaşa AVR çipinin pinlərindən idarə oluna bilər (birbaşa deyil, müqavimət vasitəsi ilə). Dövrəmizdə LED PB0-a qoşulur və gecikmə funksiyasından istifadə edərək saniyədə bir dəfə yandırlıb-söndürülür.
Tələb olunan hissələr
- ATtiny13 – i.e. MBAVR-1 development board
- Rezistor – 220Ω, see LED Resistor Calculator
- LED
Dövrə diaqramı
Proqram təminatı
Bu kod C ilə yazılmışdır və avr-gcc istifadə edərək tərtib(compile) edilə bilər. Bu layihənin tərtib olunmasına dair daha ətraflı məlumat burada.
#include <avr/io.h> #include <util/delay.h> #define LED_PIN PB0 // PB0 as a LED pin int main(void) { /* setup */ DDRB = 0b00000001; // set LED pin as OUTPUT PORTB = 0b00000000; // set all pins to LOW /* loop */ while (1) { PORTB ^= _BV(LED_PIN); // toggle LED pin _delay_ms(500); } }