Собрал не большую схему светодиодной матрицы. Пока ничего сложного, просто перебор светодиодов по порядку. Но хотелось бы узнать Вашего мнения по коду. И если можно укажите на ошибки своими примерами.
Спойлер
Код: Выделить всё
#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>
#include <util/delay.h>
int k =0;
int i;
int main()
{
DDRA=0xFF;
DDRB=0xFF;
PORTA=0x00;
PORTB=0x00;
int a[9]= {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
int b[9]={0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F};
// Write your code here
while (1){
_delay_ms(100);
k++;
switch(k){
case 1: PORTA=a[0];PORTB=b[0]; break;
case 2: PORTA=a[0];PORTB=b[1]; break;
case 3: PORTA=a[0];PORTB=b[2]; break;
case 4: PORTA=a[0];PORTB=b[3]; break;
case 5: PORTA=a[0];PORTB=b[4]; break;
case 6: PORTA=a[0];PORTB=b[5]; break;
case 7: PORTA=a[0];PORTB=b[6]; break;
case 8: PORTA=a[0];PORTB=b[7]; break;
case 9: PORTA=a[1];PORTB=b[0]; break;
case 10: PORTA=a[1];PORTB=b[1]; break;
case 11: PORTA=a[1];PORTB=b[2]; break;
case 12: PORTA=a[1];PORTB=b[3]; break;
case 13: PORTA=a[1];PORTB=b[4]; break;
case 14: PORTA=a[1];PORTB=b[5]; break;
case 15: PORTA=a[1];PORTB=b[6]; break;
case 16: PORTA=a[1];PORTB=b[7]; break;
case 17: PORTA=a[2];PORTB=b[0]; break;
case 18: PORTA=a[2];PORTB=b[1]; break;
case 19: PORTA=a[2];PORTB=b[2]; break;
case 20: PORTA=a[2];PORTB=b[3]; break;
case 21: PORTA=a[2];PORTB=b[4]; break;
case 22: PORTA=a[2];PORTB=b[5]; break;
case 23: PORTA=a[2];PORTB=b[6]; break;
case 24: PORTA=a[2];PORTB=b[7]; break;
case 25: PORTA=a[3];PORTB=b[0]; break;
case 26: PORTA=a[3];PORTB=b[1]; break;
case 27: PORTA=a[3];PORTB=b[2]; break;
case 28: PORTA=a[3];PORTB=b[3]; break;
case 29: PORTA=a[3];PORTB=b[4]; break;
case 30: PORTA=a[3];PORTB=b[5]; break;
case 31: PORTA=a[3];PORTB=b[6]; break;
case 32: PORTA=a[3];PORTB=b[7]; break;
case 33: PORTA=a[4];PORTB=b[0]; break;
case 34: PORTA=a[4];PORTB=b[1]; break;
case 35: PORTA=a[4];PORTB=b[2]; break;
case 36: PORTA=a[4];PORTB=b[3]; break;
case 37: PORTA=a[4];PORTB=b[4]; break;
case 38: PORTA=a[4];PORTB=b[5]; break;
case 39: PORTA=a[4];PORTB=b[6]; break;
case 40: PORTA=a[4];PORTB=b[7]; break;
case 41: PORTA=a[5];PORTB=b[0]; break;
case 42: PORTA=a[5];PORTB=b[1]; break;
case 43: PORTA=a[5];PORTB=b[2]; break;
case 44: PORTA=a[5];PORTB=b[3]; break;
case 45: PORTA=a[5];PORTB=b[4]; break;
case 46: PORTA=a[5];PORTB=b[5]; break;
case 47: PORTA=a[5];PORTB=b[6]; break;
case 48: PORTA=a[5];PORTB=b[7]; break;
case 49: PORTA=a[6];PORTB=b[0]; break;
case 50: PORTA=a[6];PORTB=b[1]; break;
case 51: PORTA=a[6];PORTB=b[2]; break;
case 52: PORTA=a[6];PORTB=b[3]; break;
case 53: PORTA=a[6];PORTB=b[4]; break;
case 54: PORTA=a[6];PORTB=b[5]; break;
case 55: PORTA=a[6];PORTB=b[6]; break;
case 56: PORTA=a[6];PORTB=b[7]; break;
case 57: PORTA=a[7];PORTB=b[0]; break;
case 58: PORTA=a[7];PORTB=b[1]; break;
case 59: PORTA=a[7];PORTB=b[2]; break;
case 60: PORTA=a[7];PORTB=b[3]; break;
case 61: PORTA=a[7];PORTB=b[4]; break;
case 62: PORTA=a[7];PORTB=b[5]; break;
case 63: PORTA=a[7];PORTB=b[6]; break;
case 64: PORTA=a[7];PORTB=b[7]; break;
default: PORTA=0x00; PORTB=0x00;
}
}
}


