Problem programowanie TMS320

Tu piszemy wiadomość, jeżeli zadanie domowe sprawia kłopot
i szybko potrzebujemy pomocy w rozwiązaniu.
ODPOWIEDZ
elektronikopo
Użytkownik
Posty: 182
Rejestracja: 16 gru 2007, 22:28
Lokalizacja: Poznań

Problem programowanie TMS320

Post autor: elektronikopo » 12 mar 2011, 21:03

Napisałem program w języku C dla procesora TMS320CG613 ( DSP)

Kod: Zaznacz cały

#include <dsk6713.h>
#include <dsk6713_led.h>
#include <dsk6713_dip.h>

void main() 
{
	unsigned char przel[4]={0,0,0,0},diody[4];	//zmienne lokalne
	unsigned char ii;
	int a=0;

	CSL_init();
    DSK6713_init();
    DSK6713_LED_init();
    DSK6713_DIP_init();

   ii=0

   while (1) { 
   
   przel[0]=DSK6713_DIP_get(0);
   przel[1]=DSK6713_DIP_get(1);
   przel[2]=DSK6713_DIP_get(2);
   przel[3]=DSK6713_DIP_get(3);
   a=(przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8))*100000;

   if(a==0){

 
    a=15 * 100000;

    
   przel[0]=DSK6713_DIP_get(0);
   przel[1]=DSK6713_DIP_get(1);
   przel[2]=DSK6713_DIP_get(2);
   przel[3]=DSK6713_DIP_get(3);
   a=(przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8))*100000;

          }
  

   DSK6713_waitusec(a);
   DSK6713_LED_on(0);
   DSK6713_LED_on(1);
   DSK6713_LED_off(2);
   DSK6713_LED_off(3);
   DSK6713_waitusec(a);


  DSK6713_LED_on(0);
  DSK6713_LED_off(1);
  DSK6713_LED_off(2);
  DSK6713_LED_on(3);
  DSK6713_waitusec(a);


  DSK6713_LED_on(0);
  DSK6713_LED_off(1);
  DSK6713_LED_on(2);
  DSK6713_LED_on(3);
  DSK6713_waitusec(a);


  DSK6713_LED_off(0);
  DSK6713_LED_on(1);
  DSK6713_LED_on(2);
  DSK6713_LED_on(3);
  DSK6713_waitusec(a);


 DSK6713_LED_off(0);
 DSK6713_LED_on(1);
 DSK6713_LED_on(2);
 DSK6713_LED_on(3);
 DSK6713_waitusec(a);


  DSK6713_LED_on(0);
  DSK6713_LED_off(1);
  DSK6713_LED_on(2);
  DSK6713_LED_on(3);
  DSK6713_waitusec(a);


  DSK6713_LED_on(0);
  DSK6713_LED_on(1);
  DSK6713_LED_on(2);
  DSK6713_LED_off(3);


	}
}
i mam jeden problem nie wiem jak zrobić że jak będze stan przełączników 1111 to program ma się zatrzmać na ostatniej kombinacji wie ktoś jak to zrobić ?
Ostatnio zmieniony 14 mar 2011, 18:41 przez elektronikopo, łącznie zmieniany 1 raz.

Awatar użytkownika
c4r0
Moderator
Posty: 2150
Rejestracja: 13 kwie 2004, 19:56
Lokalizacja: z lasu
Kontakt:

Post autor: c4r0 » 13 mar 2011, 5:57

Dodać na końcu pętli while drugą pętlę, pustą, której warunkiem wykonywania będzie stan przełączników 1111.

elektronikopo
Użytkownik
Posty: 182
Rejestracja: 16 gru 2007, 22:28
Lokalizacja: Poznań

Post autor: elektronikopo » 13 mar 2011, 13:04

Kod: Zaznacz cały

#include <dsk6713.h>
#include <dsk6713_led.h>
#include <dsk6713_dip.h>

void main() 
{
	unsigned char przel[4]={0,0,0,0},diody[4];	//zmienne lokalne
	unsigned char ii;
	int a=0;

    CSL_init();
    DSK6713_init();
    DSK6713_LED_init();
    DSK6713_DIP_init();

   ii;

   while (1) { 
   
   przel[0]=DSK6713_DIP_get(0);
   przel[1]=DSK6713_DIP_get(1);
   przel[2]=DSK6713_DIP_get(2);
   przel[3]=DSK6713_DIP_get(3);
   a=(przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8))*100000;

  
   DSK6713_LED_on(0);
   DSK6713_LED_on(1);
   DSK6713_LED_off(2);
   DSK6713_LED_off(3);
  
   przel[0]=DSK6713_DIP_get(0);
   przel[1]=DSK6713_DIP_get(1);
   przel[2]=DSK6713_DIP_get(2);
   przel[3]=DSK6713_DIP_get(3);
   a=(przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8))*100000;
   while(a==15*100000)
{
przel[0]=DSK6713_DIP_get(0);
przel[1]=DSK6713_DIP_get(1);
przel[2]=DSK6713_DIP_get(2);
przel[3]=DSK6713_DIP_get(3);
a=(przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8))*100000;


}


   DSK6713_waitusec(a);



  DSK6713_LED_on(0);
  DSK6713_LED_off(1);
  DSK6713_LED_off(2);
  DSK6713_LED_on(3);

   przel[0]=DSK6713_DIP_get(0);
   przel[1]=DSK6713_DIP_get(1);
   przel[2]=DSK6713_DIP_get(2);
   przel[3]=DSK6713_DIP_get(3);
   a=(przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8))*100000;
   while(a==15*100000)
{
przel[0]=DSK6713_DIP_get(0);
przel[1]=DSK6713_DIP_get(1);
przel[2]=DSK6713_DIP_get(2);
przel[3]=DSK6713_DIP_get(3);
a=(przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8))*100000;


}

  DSK6713_waitusec(a);



  DSK6713_LED_on(0);
  DSK6713_LED_off(1);
  DSK6713_LED_on(2);
  DSK6713_LED_on(3);

   przel[0]=DSK6713_DIP_get(0);
   przel[1]=DSK6713_DIP_get(1);
   przel[2]=DSK6713_DIP_get(2);
   przel[3]=DSK6713_DIP_get(3);
   a=(przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8))*100000;
   while(a==15*100000)
{
przel[0]=DSK6713_DIP_get(0);
przel[1]=DSK6713_DIP_get(1);
przel[2]=DSK6713_DIP_get(2);
przel[3]=DSK6713_DIP_get(3);
a=(przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8))*100000;


}


  DSK6713_waitusec(a);


  DSK6713_LED_off(0);
  DSK6713_LED_on(1);
  DSK6713_LED_on(2);
  DSK6713_LED_on(3);
  
   przel[0]=DSK6713_DIP_get(0);
   przel[1]=DSK6713_DIP_get(1);
   przel[2]=DSK6713_DIP_get(2);
   przel[3]=DSK6713_DIP_get(3);
   a=(przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8))*100000;

   while(a==15*100000)
{
przel[0]=DSK6713_DIP_get(0);
przel[1]=DSK6713_DIP_get(1);
przel[2]=DSK6713_DIP_get(2);
przel[3]=DSK6713_DIP_get(3);
a=(przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8))*100000;


}


  DSK6713_waitusec(a);


 DSK6713_LED_off(0);
 DSK6713_LED_on(1);
 DSK6713_LED_on(2);
 DSK6713_LED_on(3);

   przel[0]=DSK6713_DIP_get(0);
   przel[1]=DSK6713_DIP_get(1);
   przel[2]=DSK6713_DIP_get(2);
   przel[3]=DSK6713_DIP_get(3);
   a=(przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8))*100000;
    while(a==15*100000)
{
przel[0]=DSK6713_DIP_get(0);
przel[1]=DSK6713_DIP_get(1);
przel[2]=DSK6713_DIP_get(2);
przel[3]=DSK6713_DIP_get(3);
a=(przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8))*100000;


}


 DSK6713_waitusec(a);


  DSK6713_LED_on(0);
  DSK6713_LED_off(1);
  DSK6713_LED_on(2);
  DSK6713_LED_on(3);
  
   przel[0]=DSK6713_DIP_get(0);
   przel[1]=DSK6713_DIP_get(1);
   przel[2]=DSK6713_DIP_get(2);
   przel[3]=DSK6713_DIP_get(3);
   a=(przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8))*100000;
  
   while(a==15*100000)
{
przel[0]=DSK6713_DIP_get(0);
przel[1]=DSK6713_DIP_get(1);
przel[2]=DSK6713_DIP_get(2);
przel[3]=DSK6713_DIP_get(3);
a=(przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8))*100000;


}

  DSK6713_waitusec(a);


  DSK6713_LED_on(0);
  DSK6713_LED_on(1);
  DSK6713_LED_on(2);
  DSK6713_LED_off(3);
 
   przel[0]=DSK6713_DIP_get(0);
   przel[1]=DSK6713_DIP_get(1);
   przel[2]=DSK6713_DIP_get(2);
   przel[3]=DSK6713_DIP_get(3);
   a=(przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8))*100000;
   
   while(a==15*100000)
{
przel[0]=DSK6713_DIP_get(0);
przel[1]=DSK6713_DIP_get(1);
przel[2]=DSK6713_DIP_get(2);
przel[3]=DSK6713_DIP_get(3);
a=(przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8))*100000;


}



  DSK6713_waitusec(a);


	}
}





 

Dobrze?

Awatar użytkownika
c4r0
Moderator
Posty: 2150
Rejestracja: 13 kwie 2004, 19:56
Lokalizacja: z lasu
Kontakt:

Post autor: c4r0 » 13 mar 2011, 20:06

Nie wiem. Zaprogramuj/przesymuluj i się dowiesz.

ODPOWIEDZ