Issues on LED Blinking using multiple GPIO on F28335
Hi, i'm trying to do LED blinking using GPIO 0 to GPIO11 on C2000 experimenter kits (F28335). I have connect the mentioned GPIO to my oscilloscope.
However, I only can get the pulsed waveform from GPIO2, 4, 6, 8, and 10, but the others have no waveform.
Is that my coding have problems?
Below is my setup code:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
#define Q1 GpioDataRegs.GPADAT.bit.GPIO0
#define Q2 GpioDataRegs.GPADAT.bit.GPIO1
#define Q3 GpioDataRegs.GPADAT.bit.GPIO2
#define Q4 GpioDataRegs.GPADAT.bit.GPIO3
#define Q5 GpioDataRegs.GPADAT.bit.GPIO4
#define Q6 GpioDataRegs.GPADAT.bit.GPIO5
#define Q7 GpioDataRegs.GPADAT.bit.GPIO6
#define Q8 GpioDataRegs.GPADAT.bit.GPIO7
#define Q9 GpioDataRegs.GPADAT.bit.GPIO8
#define Q10 GpioDataRegs.GPADAT.bit.GPIO9
#define Q11 GpioDataRegs.GPADAT.bit.GPIO10
#define Q12 GpioDataRegs.GPADAT.bit.GPIO11
unsigned int a0 =223;
unsigned int a1 =451;
unsigned int a2 =466;
unsigned int a3 =493;
unsigned int a4 =541;
unsigned int a5 =630;
unsigned int a6 =847;
unsigned int a7 =6349;
interrupt void ISRTimer0(void);
void configtestled(void);
void lvl_7 (void);
void lvl_6 (void);
void lvl_5 (void);
void lvl_4 (void);
void lvl_3 (void);
void lvl_2 (void);
void lvl_1 (void);
void lvl_0 (void);
void lvl_n1 (void);
void lvl_n2 (void);
void lvl_n3 (void);
void lvl_n4 (void);
void lvl_n5 (void);
void lvl_n6 (void);
void lvl_n7 (void);
void main(void)
{
InitSysCtrl();
configtestled();
Q1=0;
DELAY_US(10);
Q2=0;
DELAY_US(10);
Q3=0;
DELAY_US(10);
Q4=0;
DELAY_US(10);
Q5=0;
DELAY_US(10);
Q6=0;
DELAY_US(10);
Q7=0;
DELAY_US(10);
Q8=0;
DELAY_US(10);
Q9=0;
DELAY_US(10);
Q10=0;
DELAY_US(10);
Q11=0;
DELAY_US(10);
Q12=0;
DELAY_US(10);
while(1){
lvl_0 ();
DELAY_US(a0);
lvl_1 ();
DELAY_US(a1);
lvl_2 ();
DELAY_US(a2);
lvl_3 ();
DELAY_US(a3);
lvl_4 ();
DELAY_US(a4);
lvl_5 ();
DELAY_US(a5);
lvl_6 ();
DELAY_US(a6);
lvl_7 ();
DELAY_US(a7);
DELAY_US(a7);
lvl_6 ();
DELAY_US(a6);
lvl_5 ();
DELAY_US(a5);
lvl_4 ();
DELAY_US(a4);
lvl_3 ();
DELAY_US(a3);
lvl_2 ();
DELAY_US(a2);
lvl_1 ();
DELAY_US(a1);
lvl_0 ();
DELAY_US(a0);
DELAY_US(a0);
lvl_n1 ();
DELAY_US(a1);
lvl_n2 ();
DELAY_US(a2);
lvl_n3 ();
DELAY_US(a3);
lvl_n4 ();
DELAY_US(a4);
lvl_n5 ();
DELAY_US(a5);
lvl_n6 ();
DELAY_US(a6);
lvl_n7 ();
DELAY_US(a7);
DELAY_US(a7);
lvl_n6 ();
DELAY_US(a6);
lvl_n5 ();
DELAY_US(a5);
lvl_n4 ();
DELAY_US(a4);
lvl_n3 ();
DELAY_US(a3);
lvl_n2 ();
DELAY_US(a2);
lvl_n1 ();
DELAY_US(a1);
lvl_0 ();
DELAY_US(a0);
}
}
void configtestled(void)
{
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO0 = 1;
GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO1 = 1;
GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO2 = 1;
GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO3 = 1;
GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO4 = 1;
GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO5 = 1;
GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO6 = 1;
GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO7 = 1;
GpioCtrlRegs.GPAMUX1.bit.GPIO8 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO8 = 1;
GpioCtrlRegs.GPAMUX1.bit.GPIO9 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO9 = 1;
GpioCtrlRegs.GPAMUX1.bit.GPIO10 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO10 = 1;
GpioCtrlRegs.GPAMUX1.bit.GPIO11 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO11 = 1;
EDIS;
}
void lvl_7 (void)
{
Q1=1;
Q2=0;
Q3=0;
Q4=1;
Q5=1;
Q6=0;
Q7=0;
Q8=1;
Q9=1;
Q10=0;
Q11=0;
Q12=1;
//PORTB=0b00|1001|00; //2,3,4,5 <--
//PORTA=0b0000|1001|; //0,1,2,3 -->
//PORTC=0b0000|1001|; //0,1,2,3 -->
}
void lvl_6 (void)
{
Q1=1;
Q2=1;
Q3=0;
Q4=0;
Q5=1;
Q6=0;
Q7=0;
Q8=1;
Q9=1;
Q10=0;
Q11=0;
Q12=1;
//PORTB=0b00|0011|00; //2,3,4,5
//PORTA=0b0000|1001|; //0,1,2,3
//PORTC=0b0000|1001|; //0,1,2,3
}
void lvl_5 (void)
{
Q1=1;
Q2=0;
Q3=0;
Q4=1;
Q5=1;
Q6=1;
Q7=0;
Q8=0;
Q9=1;
Q10=0;
Q11=0;
Q12=1;
//PORTB=0b00|1001|00; //2,3,4,5
//PORTA=0b0000|1100|; //0,1,2,3
//PORTC=0b0000|1001|; //0,1,2,3
}
void lvl_4 (void)
{
Q1=0;
Q2=0;
Q3=1;
Q4=1;
Q5=0;
Q6=0;
Q7=1;
Q8=1;
Q9=1;
Q10=0;
Q11=0;
Q12=1;
//PORTB=0b00|1100|00; //2,3,4,5
//PORTA=0b0000|0011|; //0,1,2,3
//PORTC=0b0000|1001|; //0,1,2,3
}
void lvl_3 (void)
{
Q1=1;
Q2=0;
Q3=0;
Q4=1;
Q5=1;
Q6=0;
Q7=0;
Q8=1;
Q9=1;
Q10=1;
Q11=0;
Q12=0;
//PORTB=0b00|1001|00; //2,3,4,5
//PORTA=0b0000|1001|; //0,1,2,3
//PORTC=0b0000|1100|; //0,1,2,3
}
void lvl_2 (void)
{
Q1=1;
Q2=1;
Q3=0;
Q4=0;
Q5=1;
Q6=0;
Q7=0;
Q8=1;
Q9=1;
Q10=1;
Q11=0;
Q12=0;
//PORTB=0b00|0011|00; //2,3,4,5
//PORTA=0b0000|1001|; //0,1,2,3
//PORTC=0b0000|1100|; //0,1,2,3
}
void lvl_1 (void)
{
Q1=1;
Q2=0;
Q3=0;
Q4=1;
Q5=1;
Q6=1;
Q7=0;
Q8=0;
Q9=1;
Q10=1;
Q11=0;
Q12=0;
//PORTB=0b00|1001|00; //2,3,4,5
//PORTA=0b0000|1100|; //0,1,2,3
//PORTC=0b0000|1100|; //0,1,2,3
}
void lvl_0 (void)
{
Q1=0;
Q2=0;
Q3=1;
Q4=1;
Q5=0;
Q6=0;
Q7=1;
Q8=1;
Q9=0;
Q10=0;
Q11=1;
Q12=1;
//PORTB=0b00|1100|00; //2,3,4,5
//PORTA=0b0000|0011|; //0,1,2,3
//PORTC=0b0000|0011|; //0,1,2,3
}
void lvl_n1 (void)
{
Q1=0;
Q2=1;
Q3=1;
Q4=0;
Q5=0;
Q6=0;
Q7=1;
Q8=1;
Q9=0;
Q10=0;
Q11=1;
Q12=1;
//PORTB=0b00|0110|00; //2,3,4,5
//PORTA=0b0000|0011|; //0,1,2,3
//PORTC=0b0000|0011|; //0,1,2,3
}
void lvl_n2 (void)
{
Q1=0;
Q2=0;
Q3=1;
Q4=1;
Q5=0;
Q6=1;
Q7=1;
Q8=0;
Q9=0;
Q10=0;
Q11=1;
Q12=1;
//PORTB=0b00|1100|00; //2,3,4,5
//PORTA=0b0000|0110|; //0,1,2,3
//PORTC=0b0000|0011|; //0,1,2,3
}
void lvl_n3 (void)
{
Q1=0;
Q2=1;
Q3=1;
Q4=0;
Q5=0;
Q6=1;
Q7=1;
Q8=0;
Q9=0;
Q10=0;
Q11=1;
Q12=1;
//PORTB=0b00|0110|00; //2,3,4,5
//PORTA=0b0000|0110|; //0,1,2,3
//PORTC=0b0000|0011|; //0,1,2,3
}
void lvl_n4 (void)
{
Q1=1;
Q2=1;
Q3=0;
Q4=0;
Q5=1;
Q6=1;
Q7=0;
Q8=0;
Q9=0;
Q10=1;
Q11=1;
Q12=0;
//PORTB=0b00|0011|00; //2,3,4,5
//PORTA=0b0000|1100|; //0,1,2,3
//PORTC=0b0000|0110|; //0,1,2,3
}
void lvl_n5 (void)
{
Q1=0;
Q2=1;
Q3=1;
Q4=0;
Q5=1;
Q6=1;
Q7=0;
Q8=0;
Q9=0;
Q10=1;
Q11=1;
Q12=0;
//PORTB=0b00|0110|00; //2,3,4,5
//PORTA=0b0000|1100|; //0,1,2,3
//PORTC=0b0000|0110|; //0,1,2,3
}
void lvl_n6 (void)
{
Q1=1;
Q2=1;
Q3=0;
Q4=0;
Q5=0;
Q6=1;
Q7=1;
Q8=0;
Q9=0;
Q10=1;
Q11=1;
Q12=0;
//PORTB=0b00|0011|00; //2,3,4,5
//PORTA=0b0000|0110|; //0,1,2,3
//PORTC=0b0000|0110|; //0,1,2,3
}
void lvl_n7 (void)
{
Q1=0;
Q2=1;
Q3=1;
Q4=0;
Q5=0;
Q6=1;
Q7=1;
Q8=0;
Q9=0;
Q10=1;
Q11=1;
Q12=0;
//PORTB=0b00|0110|00; //2,3,4,5
//PORTA=0b0000|0110|; //0,1,2,3
//PORTC=0b0000|0110|; //0,1,2,3
}
//===========================================================================
// No more.
//===========================================================================
Any help or suggestions? :-)