کد:
سلام. من می خوام که حروف A .و B را پشت سر هم بر روی LED Matrix نشان بدم. در ابتدا حرف A را نشان می دم بعد از یک تاخیر در حد چند میلی ثانیه حرف B ظاهر شود. تاخیر درون حلقه در حد میکرو ثانیه است. در این حالت چیزی نشان داده نمی شود ولی اگر تاخیر خارجی را به همان حد میکرو ثانیه قرار دهم حروف A و B نشان داده می شود ولی چون سرعت بالا است روی هم دیده می شوند. چرا با تاخیر خارجی میلی ثانیه چیزی دیده نمی شود؟[ code]#include <mega32.h> #include <delay.h> int i; unsigned char k; unsigned char A[8]={0x18, 0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x00}; unsigned char clear[8]={0b01111111, 0b10111111, 0b11011111, 0b11101111, 0b11110111, 0b111111011, 0b11111101, 0b11111110}; unsigned char B[8]={0X3C,0X22,0X22,0X3C,0X22,0X22,0X3C,0X00}; //unsigned char arr[8]={0x7E, 0x33, 0x33, 0x3E, 0x33, 0x33, 0x7E, 0x00}; //unsigned char arr[8]={0x1E, 0x33, 0x60, 0x60, 0x60, 0x33, 0x1E, 0x00}; void main(void) { PORTA=0xff; DDRA=0xFF; //PORTB=0xFF; DDRB=0xFF; while (1) { for(k=0;k<=7;k++) { PORTA=A[k]; //PORTB=~(1<<k); PORTB=clear[7-k]; delay_us(10); PORTB=0xFF; } delay_ms(1000); for(k=0;k<=7;k++) { PORTA=B[k]; //PORTB=~(1<<k); PORTB=clear[7-k]; delay_us(10); PORTB=0xFF; } } }
دیدگاه