Добавлено after 5 minutes 38 seconds:
Для CV AVR .
Код: Выделить всё
/*******************************************************
среда CV AVR
Chip type : ATmega8
AVR Core Clock frequency: 4,000000 MHz
*******************************************************/
#include <mega8.h>
#include <delay.h>
#include <io.h>
#define clk PORTD.6 // пины на айтуси
#define dio PORTD.7
#define rr PORTB.5 // порт для диагностики работы программы осциллографом
void I2C_START() // старт айтуси
{
clk=1;
dio=1;
delay_us(10);
dio=0;
}
void I2C_WR(unsigned char dat) // запись команды или информации в тм1637
{
unsigned char i;
for(i=0;i<8;i++)
{
clk=0;
if(dat&0x01)
{ //зачем скобки непонятно но так было в инете
dio=1;
}
else
{
dio=0;
}
delay_us(10);
dat=dat>>1;
clk=1;
delay_us(10);
}
}
void I2C_ACK() // ожидание ответа от тм1637 типа всё норм
{
clk=0;
delay_us(10);
DDRD=(0<<DDD7) ;
delay_us(10);
while(dio);
DDRD=(1<<DDD7) ;
dio=0; //так написано
clk=1;
delay_us(10);
clk=0;
delay_us(10);
}
void I2C_STOP() // останов айтуси
{
delay_us(10);
clk=1;
delay_us(10);
dio=1;
}
void I2C() //тестовая процеДУРА из инета
{
I2C_START();
I2C_WR(0x40); // вкл режим вывода на лсд
I2C_ACK();
I2C_STOP();
I2C_START(); // установить адрес начала буфера данных
I2C_WR(0xc0);
I2C_ACK();
I2C_WR(0x0bf); // запись данных в буфер
I2C_ACK();
I2C_WR(0x3f);
I2C_ACK();
I2C_WR(0x3f);
I2C_ACK();
I2C_WR(0x3f);
I2C_ACK();
I2C_WR(0x4f);
I2C_ACK();
I2C_WR(0x3f);
I2C_ACK();
I2C_STOP(); // включить дисплей настроить яркость
I2C_START();
I2C_WR(0x8f);
I2C_ACK();
I2C_STOP();
}
void main(void)
{
// настройка портов
DDRB=(1<<DDB7) | (1<<DDB6) | (1<<DDB5) | (1<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
DDRD=(1<<DDD7) | (1<<DDD6);
rr=1; // диагностика посещенийй этого места, осликом
delay_ms(10);
rr=0;
while (1)
{
I2C();
while(1);
}
}
Пример кода есть в даташите https://www.puntoflotante.net/DATASHEET-TM1637.pdf[/uquote]Novice user писал(а):Пример кода есть в даташите https://www.puntoflotante.net/DATASHEET-TM1637.pdf
У тебя есть какие то советы ? Или ты будешь и далее задавать тупые вопросы ?Novice user писал(а):Ну так и пишите "max7219"