Mình có đọc bài hướng dẫn dùng SPI để làm led matrix
Ko biết là mình quy định cổng xuất mấy cái dữ liệu đó ra ở đâu ạ. Có phải là chỗ Define ko, mình học C thì define để định nghĩa hằng mà.
#include <mega8515.h>
#include <delay.h>
// SPI functions
#include <spi.h>
#define SCK PORTB.3
#define DATA PORTB.2
#define SCL PORTB.1
#define B PORTC.1;
#define C PORTC.2;
#define OE PORTC.3;
unsigned char i;
void LatchData(){
SCL=0;
SCL=1;
}
void main(void){
// SPI initialization
// SPI Type: Master
// SPI Clock Rate: 4000,000 kHz
// SPI Clock Phase: Cycle Half
// SPI Clock Polarity: Low
// SPI Data Order: MSB First
SPCR=0x50;
SPSR=0x00;
DDRB=0xFF;
DDRC=0xFF;
SCK=1;
SCL=1;
while (1){
for (i=0;i<=7;i++){
if (i&1){
spi(0b10101010);
spi(0b10101010);
spi(0b10101010);
} else {
spi(0b01010101);
spi(0b01010101);
spi(0b01010101);
}
LatchData();
PORTC=i+8;
delay_ms(2);
}
}
}
#include <delay.h>
// SPI functions
#include <spi.h>
#define SCK PORTB.3
#define DATA PORTB.2
#define SCL PORTB.1
#define B PORTC.1;
#define C PORTC.2;
#define OE PORTC.3;
unsigned char i;
void LatchData(){
SCL=0;
SCL=1;
}
void main(void){
// SPI initialization
// SPI Type: Master
// SPI Clock Rate: 4000,000 kHz
// SPI Clock Phase: Cycle Half
// SPI Clock Polarity: Low
// SPI Data Order: MSB First
SPCR=0x50;
SPSR=0x00;
DDRB=0xFF;
DDRC=0xFF;
SCK=1;
SCL=1;
while (1){
for (i=0;i<=7;i++){
if (i&1){
spi(0b10101010);
spi(0b10101010);
spi(0b10101010);
} else {
spi(0b01010101);
spi(0b01010101);
spi(0b01010101);
}
LatchData();
PORTC=i+8;
delay_ms(2);
}
}
}
Comment