[an error occurred while processing this directive] [an error occurred while processing this directive]
Хм(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено AlexD 15 сентября 2001 г. 10:28
В ответ на: Уважаемый Electronik, да я многого не знаю, я учусь отправлено Alkur 15 сентября 2001 г. 09:09


// Не претендуя на истину в последней инстанции...
#include </Atmel/AT898252.h>
// не люблю длинные слова писать :-)
typedef unsigned char uchar;
typedef unsigned int uint;
// Раскладывание переменных по абсолютным адресам -
// отрыжка ассемблера от которой следует отвыкать
uchar Data; //data to indicator
uchar Adr; //address to indicator
// переменную - в пространство бит:
bdata uint Adr_Data; //Value for transferring
// нужный нам бит
sbit Ind_Trans=Adr_Data^15; //First bit Adr_Data value

#define CLK P1_4 // CLK for MAX7219
#define DIN P1_3 // Data for MAX7219
#define STB P1_5 // Load for MAX7219

void Disp() // program for the indicator MAX7219
{
unsigned char i;
STB=0;
for(i=0;i<16;i++) // Transfer value to MAX7219
{
CLK=0;
DIN=Ind_Trans;
CLK=1;
Adr_Data<<=1;
}
STB=1;
}

void main (void){
// как обращаться к отдельным байтам слова
// в конфе писанно немало, поищите и выберите
// что понравится
Adr_Data=(Adr<<8)|Data;
//
Disp();
}
// Эта программа всё ещё остаётся реализационно - зависимой
// чего следует всячески избегать, если не хотите попадать
// в такие косяки. Думайте больше...


Created with The Source Studio - EVALUATION version

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru