📄 led8_8.c
字号:
#include "DSP28_Device.h"
#include "DSP28_Globalprototypes.h"
#define DINA GpioDataRegs.GPFDAT.bit.GPIOF0
#define DINB GpioDataRegs.GPFDAT.bit.GPIOF1
#define CLK2 GpioDataRegs.GPFDAT.bit.GPIOF2
#define CLEAR2 GpioDataRegs.GPFDAT.bit.GPIOF3
#define DINC GpioDataRegs.GPBDAT.bit.GPIOB0
#define DIND GpioDataRegs.GPBDAT.bit.GPIOB1
#define CLK1 GpioDataRegs.GPBDAT.bit.GPIOB2
#define CLEAR1 GpioDataRegs.GPBDAT.bit.GPIOB3
// Prototype statements for functions found within this file.
// interrupt void ISRTimer2(void);
void delay_loop(void);
void Gpio_select(void);
void sendto1(unsigned char dab);
void sendto2(unsigned char dat);
void DELAY(void);
unsigned int var1 = 0;
unsigned int var2 = 0;
unsigned int var3 = 0;
unsigned char sendBdata[8]={0x0ff,0x0ff,0x0ff,0x0ff,0x0ff,0x0ff,0x0ff,0x0ff};
//unsigned char dispdata[8]={0x7e,0xBD,0xDB,0xE7,0xE7,0xDB,0xBD,0x7E};
//unsigned char dispdata[8]={0x7c,0x48,0x48,0xff,0x48,0x48,0x7c,0x00};//中
//unsigned char dispdata[8]={0x81,0x42,0x24,0x18,0x18,0x24,0x42,0x81};//乘号
//unsigned char dispdata[4]={0xff,0xff,0xff,0xff};//stria neon light
//unsigned char dispdata[7]={0x18,0x24,0x3c,0x42,0x7e,0x81,0xff};//expaned window
unsigned char dispdata[4]={0x18,0x3c,0x7e,0xff};//candy
//unsigned char dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xDf,0xBf,0x7f};
//unsigned char dispbit[4]={0xe7,0xdb,0xbd,0x7e};//staia neon light
//unsigned char dispbit[7]={0xe7,0xe7,0xdb,0xc3,0xbd,0x81,0x7e};//expanded window
unsigned char dispbit[4]={0xe7,0xc3,0x81,0x00};//candy
unsigned char kdab;
unsigned char kdat;
void main(void)
{
unsigned char i;
InitSysCtrl();
// Disable and clear all CPU interrupts:
DINT;
IER = 0x0000;
IFR = 0x0000;
// Initialize Pie Control Registers To Default State:
InitPieCtrl();
InitPieVectTable();
// Run GPIO test
var1= 0x0000; // sets GPIO Muxs as I/Os
var2= 0xFFFF; // sets GPIO DIR as outputs
var3= 0x0000; // sets the Input qualifier values
Gpio_select();
// Toggle I/Os using DATA register for ever
for(i=0;i<200;i++);
CLEAR2=0;
CLK2=1;
CLEAR1=0;
CLK1=1;
DINA=1;
DINB=1;
DINC=1;
DIND=1;
CLEAR2=1;
CLEAR1=1;
while(1)
{
sendto1(0x0ff);
//static/stria map
// for(i=0;i<8;i++)
// {
// sendto1(sendBdata[i]);
//GpioDataRegs.GPBDAT.all=0X00FF;
// sendto2(dispdata[i]);
// sendto1(dispbit[i]);
//GpioDataRegs.GPBDAT.all=dispbit[i];
// DELAY();
// DELAY();
// DELAY();
// DELAY();
// DELAY();
// DELAY();
// }
//static/stria map
//expanded window
sendto1(dispbit[0]);
sendto2(dispdata[0]);
DELAY();
DELAY();
DELAY();
DELAY();
DELAY();
DELAY();
DELAY();
DELAY();
sendto1(dispbit[1]);
sendto2(dispdata[1]);
DELAY();
DELAY();
DELAY();
DELAY();
DELAY();
DELAY();
DELAY();
sendto1(dispbit[2]);
sendto2(dispdata[2]);
DELAY();
DELAY();
DELAY();
DELAY();
DELAY();
DELAY();
DELAY();
DELAY();
sendto1(dispbit[3]);
sendto2(dispdata[3]);
DELAY();
DELAY();
DELAY();
DELAY();
DELAY();
DELAY();
DELAY();
DELAY();
//expanded window
}
}
void Gpio_select(void)
{
EALLOW;
GpioMuxRegs.GPBMUX.all=var1; //0x0000
GpioMuxRegs.GPBDIR.all=var2; // 0xFFFF,GPIO DIR select GPIOs as output
GpioMuxRegs.GPBQUAL.all=var3; //0x0000
GpioMuxRegs.GPFMUX.all=var1;
GpioMuxRegs.GPFDIR.all=var2; // GPIO DIR select GPIOs as output
EDIS;
}
void sendto1(unsigned char dab)
{
unsigned char i;
CLK1=0;
kdab=dab;
for(i=0;i<8;i++)
{
if((kdab&0x01) == 0x01)
{
DINC=1;
}else DINC = 0;
CLK1=1;
CLK1=0;
kdab=kdab>>1;
}
}
void sendto2(unsigned char dat)
{
unsigned char i;
CLK2=0;
kdat=dat;
for(i=0;i<8;i++)
{
if((kdat & 0x01) == 0x01)
{
DINA=1;
}else DINA = 0;
CLK2=1;
CLK2=0;
kdat=kdat>>1;
}
}
void DELAY()
{
unsigned long k,j;
for(k=0;k<50;k++)
for(j=0;j<5000;j++);
}
//===========================================================================
// No more.
//===========================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -