/**************************************************/
/* ARE 2009 / Maj 2024 */
/* e-mail: [email protected] / PWr AiR */
/* www : are.net.pl / PTM1 lab */
/**************************************************/
//#define F_CPU 1000000UL // 1 MHz
#define F_CPU 8000000UL // 8 MHz
//#define F_CPU 14.7456E6
#include <util/delay.h>
#include <avr/io.h>
void delay_ms(int ms) {
volatile long unsigned int i;
for(i=0; i<ms; i++) _delay_ms(1);
}
int main(void) {
DDRD = 0xFF; //ustalenie kierunku pinow
int ms=1000; //zdefiniowanie zmiennej odpowiadajacej za opoznienia
int i = 0;
char cyfry[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
/* Kodowanie szesnastkowe do wyświetlania siedmiosegmentowego 0123456789*/
//PORTD = 0x03; //ustawienie stanu poczatkowego portu (niepotrzebne teraz)
//"biegajace" diody, przerobione na wyświtlanie liczb po kolei.
while(1) {
for(i=0; i<10; i++) {
//PORTD = ~(0x03<<i); (niepotrzebne teraz)
PORTD = ~(cyfry[i]);
delay_ms(ms);
}
/* for(i=6; i>0; i--) { (niepotrzebne teraz)
PORTD=~(0x03<<i);
delay_ms(ms);
} */
};
return(0);
}
Oryginał ↓
20090624_Programy_dla_ATmega16_32.zip



