2015-02-15

Dot-matrix 연습 영상

전광판 출력 연습 강좌란에 나오는 내용을 연습한 코드 및  정리 자료 입니다.

출처 : cafe.naver.com/laydigital/

안녕하세요, 어느덧 강좌가 2개만 남았습니다.... 남은 강좌도 마무리까지 열심히 달려서 보충자료에 있는 과제와 연습 코드까지 다룰수 있도록 힘내봐야겠네요. youtube도 시작할겸 강좌 구동영상을 연습삼아 올려봅니다. 2 color dot matrix 품명은 BVD-8518SG1 이고 datasheet가 없다네요 ;; 하드웨어 연결은 강좌에 나온 사항을 토대로 연결하였습니당.



Code simulation video



// CODE

#include <avr/io.h>
#define Kilo 1000UL
#define Mega Kilo * Kilo
#define F_CPU 16*Mega
#include <util/delay.h>

void dsp(uint8_t *p,uint8_t);

uint8_t prr[]= {           
    0,0,0,0,0,0,0,
    0b00111100, //I
    0b00011000,
    0b00011000,
    0b00011000,
    0b00011000,
    0b00011000,
    0b00011000,
    0b00111100,
    0,0,
    0b01100110, //♥
    0b11111111,
    0b11111111,
    0b11111111,
    0b11111111,
    0b01111110,
    0b00111100,
    0b00011000,
    0,0,    
    0b01100110, //Y
    0b01100110,
    0b01100110,
    0b01111110,
    0b01111110,
    0b00011000,
    0b00011000,
    0b00011000,
    0,0,
    0b00111100, //O
    0b01111110,
    0b11100111,
    0b11000011,
    0b11000011,
    0b11100111,
    0b01111110,
    0b00111100,
    0,0,
    0b01100110, //U
    0b01100110,
    0b01100110,
    0b01100110,
    0b01100110,
    0b01100110,
    0b01111110,
    0b00111100,
    0,0,0,0,0,0,0,0
    };

int main(void)
{
 DDRA = 0xff;
 DDRE = 0xff; //red
 DDRF = 0xff; //green
 uint8_t i,j=0;

 while(1)
  {
       for(i=0; i<((sizeof(prr)/sizeof(prr[0]))-8); i++)
    {
     for(j=0; j<80; j++)
     {
       dsp(prr,i);  
     }
    }
  }
    
}

void dsp(uint8_t *p,uint8_t t)
{
  uint8_t i=0;
  for(i=0; i<8; i++)
  {
    PORTA = (1<<PA7)>>i;
    PORTF = *((p++)+t); //green
 PORTE = PORTF&0xf0; //red
 _delay_us(500);
  }

}








No comments:

Post a Comment

Total Pageviews