Program na procesorze TMS320C6713

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ń

Program na procesorze TMS320C6713

Post autor: elektronikopo » 24 mar 2011, 0:40

Prosze o wytłumaczenie mi następującego programu w języku C bo nie dokońca rozumiem

Kod: Zaznacz cały

#define CHIP_6713 1
#include"konfiguracjacfg.h"
#include <csl.h>
#include <dsk6713.h>
#include <dsk6713_led.h>
#include <dsk6713_dip.h>


unsigned char przel[4]={0,0,0,0}, a=0, x=0, p;
void main(void)
{
	CSL_init();
    DSK6713_init();
    DSK6713_LED_init();
    DSK6713_DIP_init();

	//przel[0]=DSK6713_DIP_get(0);
	//DSK6713_LED_off(0);
	//DSK6713_LED_on(0);
	//DSK6713_LED_toggle(0);

}

void funkcja_1sekunda(void)
{
x++;	
		przel[0]=DSK6713_DIP_get(0);
		przel[1]=DSK6713_DIP_get(1);
		przel[2]=DSK6713_DIP_get(2);
		przel[3]=DSK6713_DIP_get(3);

		p=przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8);	

			if(x==p) {

				a++;
					if(a==1)	{
					   DSK6713_LED_on(0);
   DSK6713_LED_on(1);
   DSK6713_LED_on(2);
   DSK6713_LED_off(3);
							}

					if(a==2)	{
						  DSK6713_LED_on(0); 
  DSK6713_LED_on(1);
  DSK6713_LED_off(2);
  DSK6713_LED_on(3);
							}

					if(a==3)	{
					 DSK6713_LED_on(0); 
  DSK6713_LED_off(1);
  DSK6713_LED_on(2);
  DSK6713_LED_on(3);
							}

					if(a==4)	{
					  DSK6713_LED_off(0);
  DSK6713_LED_on(1);
  DSK6713_LED_on(2);
  DSK6713_LED_on(3);
						
							}
					if(a==5)	{
					  DSK6713_LED_off(0);
  DSK6713_LED_on(1);
  DSK6713_LED_on(2);
  DSK6713_LED_on(3);
					
							}

		if(a==6)	{
					  DSK6713_LED_off(0);
  DSK6713_LED_on(1);
  DSK6713_LED_on(2);
  DSK6713_LED_on(3);
					
							}

		if(a==7)	{
					  DSK6713_LED_off(0);
  DSK6713_LED_on(1);
  DSK6713_LED_on(2);
  DSK6713_LED_on(3);
				
							}

		if(a==7)	{
					  DSK6713_LED_off(0);
  DSK6713_LED_on(1);
  DSK6713_LED_on(2);
  DSK6713_LED_on(3);
					a=0;
							}

				  x=0;
			     	 }

		if(x==16){
		x=0;
		}
}

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

Re: Program na procesorze TMS320C6713

Post autor: c4r0 » 24 mar 2011, 2:22

elektronikopo pisze:bo nie dokońca rozumiem
To ile rozumiesz?

Ledy migaja zaleznie od przelacznikow na plytce - tyle mozna powiedziec. Jakiej odpowiedzi oczekujesz?

keruseykaryu

Post autor: keruseykaryu » 24 mar 2011, 6:48

Kolega elektronikopo bawi się z nami w kotka i myszkę. Najpierw "napisał" podobny program https://forum.elportal.pl/viewtopic.php?p=69727#69727 a teraz programu nie rozumie.

Myślę, że kolega powinien się głęboko zastanowić czy naprawdę chce się bawić w elektronikę i programowanie.

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

Post autor: elektronikopo » 24 mar 2011, 18:39

Wiem , że napisałem podobny program znaczy realizujący to samo ale różniący się znacznie w kodzie.

Kod: Zaznacz cały

        przel[0]=DSK6713_DIP_get(0); 
        przel[1]=DSK6713_DIP_get(1); 
        przel[2]=DSK6713_DIP_get(2); 
        przel[3]=DSK6713_DIP_get(3); 

        p=przel[0]+(przel[1]*2)+(przel[2]*4)+(przel[3]*8);    
tutaj jest odczyt stanów z przełączników oraz obliczenie tego stanu w zmiennej p tylko nie rozumiem dlaczego nie ma tam jeszcze razy 100000 czyli 0,1s bo w zalezności od stanów przełaczników rózny jest czas opoznienia

Nie wiem jaką funkcję pełni zmienna x ale myśle że to jest zmienna ograniczjąca stan przełączników

poźniej mamy warunek x==p nie wiem co to znaczy w kontekscie programu
zmienna a to jest chyba nr kombinacji świecenie diód kolejno

Nie rozumiem dziłania tego warunku do końca

Kod: Zaznacz cały

            if(x==p) { 

                a++; 
                    if(a==1)    { 
                       DSK6713_LED_on(0); 
   DSK6713_LED_on(1); 
   DSK6713_LED_on(2); 
   DSK6713_LED_off(3); 
                            } 

                    if(a==2)    { 
                          DSK6713_LED_on(0); 
  DSK6713_LED_on(1); 
  DSK6713_LED_off(2); 
  DSK6713_LED_on(3); 
                            } 

                    if(a==3)    { 
                    DSK6713_LED_on(0); 
  DSK6713_LED_off(1); 
  DSK6713_LED_on(2); 
  DSK6713_LED_on(3); 
                            } 

                    if(a==4)    { 
                      DSK6713_LED_off(0); 
  DSK6713_LED_on(1); 
  DSK6713_LED_on(2); 
  DSK6713_LED_on(3); 
                        
                            } 
                    if(a==5)    { 
                      DSK6713_LED_off(0); 
  DSK6713_LED_on(1); 
  DSK6713_LED_on(2); 
  DSK6713_LED_on(3); 
                    
                            } 

        if(a==6)    { 
                      DSK6713_LED_off(0); 
  DSK6713_LED_on(1); 
  DSK6713_LED_on(2); 
  DSK6713_LED_on(3); 
                    
                            } 

        if(a==7)    { 
                      DSK6713_LED_off(0); 
  DSK6713_LED_on(1); 
  DSK6713_LED_on(2); 
  DSK6713_LED_on(3); 
                
                            } 

        if(a==7)    { 
                      DSK6713_LED_off(0); 
  DSK6713_LED_on(1); 
  DSK6713_LED_on(2); 
  DSK6713_LED_on(3); 
                    a=0; 
                            } 

                  x=0; 
                     } 

        if(x==16){ 
        x=0; 
        } 
}

ODPOWIEDZ