www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

[NEWBIE] FRI-SMS razvojni board vprasanje [NEWBIE]

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
MarkoSan
Član
Član



Pridružen-a: Pon 11 Dec 2006 12:20
Prispevkov: 123
Aktiv.: 0.54
Kraj: Ljubljana

PrispevekObjavljeno: Ned Nov 13, 2011 2:17 pm    Naslov sporočila:  [NEWBIE] FRI-SMS razvojni board vprasanje [NEWBIE] Odgovori s citatom

Spostovani!

Letos sem kupil razvojni sistem FRI-SMS, ki so ga razvili na Fakulteti za Racunalnistov in Informatiko in sedaj probam krmilit 4 LED diode preko PIO Port C, vendar naletim na sledeca problema:
1) Port skonfiguriram pravilno in nato posljem same enice v PIO_SODR register, da se diode prizgo. Nato podam delay in nato posljem same enice v PIO_CODR register, da ugasnem LED diode. Ta postpek je vgnezden v neskocno zanko, vendar ko stvar pozene, mi diode gorijo nesprestano. Ob debugiranju (step-by-step) se lucke prizigajo in ugasajo pravilno. Ni mi jasno, kako je to mogoce!? Prilagam se kodo:
Koda:
#include "Main.h"
#include "AT91SAM9260.h"

/* Zaradi napake v prevajalniku mora biti definirana ta spremenljivka */
int dummy = 1;

#define nop() __asm__ __volatile__("nop")

volatile AT91PS_PIO pPortC=AT91C_BASE_PIOC; // memory mapped PIO Port C allocation

const int iMAX_INDEX=100;  // delay index
const int iREG_SIZE=32; // register size

void loopNop();
void trioNop();

int iRegValue=0xffffffff;

void initPortC()
{
    pPortC->PIO_PER=iRegValue;
    trioNop();

    pPortC->PIO_OER=iRegValue;
    trioNop();
}   // initPortB

void turnPortC_LED_On()
{
    pPortC->PIO_SODR=iRegValue;
    trioNop();
}   // turnPortC_LED_On

void turnPortC_LED_Off()
{
    pPortC->PIO_CODR=iRegValue;
    trioNop();
}   // turnPortC_LED_Off

void loopNop(const int iOuterIndexMax,
             const int iIndexInnerMax)
{
    int iIndexOuter=0;   // outer loop index
    int iIndexInner=0;  // inner loop

    for(iIndexOuter=0; iIndexOuter<iOuterIndexMax; iIndexOuter++)
        for(iIndexInner=0; iIndexInner<iIndexInnerMax; iIndexInner++)
            nop();
}   // loopNop

void trioNop()
{
    loopNop(3,
            1);
}

int main(void)
{
    int iIndexOuter=0;   // outer loop index
    int iIndexInner=0;  // inner loop

    initPortC();

    while(1)
    {
        //for(iIndexOuter=0; iIndexOuter<iREG_SIZE; iIndexOuter++)
        //{
            turnPortC_LED_On();
            //pPortC->PIO_SODR=(1<<iIndexOuter);
            loopNop(iMAX_INDEX,
                    iMAX_INDEX*2);

            turnPortC_LED_Off();
            loopNop(iMAX_INDEX,
                    iMAX_INDEX*2);
        //}   // for
    }   // while

    return(0);  // exit
}

2) Na Port C sem preko breadboarda zvezal 4 LED diode. Ob posiljanju samih enic na Port C se prizgejo 3 diode, ena vedno "brli". Napetost na port pinih je ok, torej 3,26 Volta. Je mogoce, da plosci zmanjka toka?? Plosca se napaja preko USB kabla, ki je priklopljen na samostojen USB hub, KI IMA LASTNO NAPAJANJE (iz 220 V). Zakaj 4-ta dioda vedno "brli"?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
red_mamba
Član
Član



Pridružen-a: Ned 20 Feb 2005 17:56
Prispevkov: 1486
Aktiv.: 6.26
Kraj: Yogyakarta

PrispevekObjavljeno: Ned Nov 13, 2011 2:28 pm    Naslov sporočila:   Odgovori s citatom

Poizkusi najprej povecati delay med vklopi in izklopi
_________________
Bad things happen to good people all the time for no reason!
Blog
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
SkunkyLee
Član
Član



Pridružen-a: Čet 12 Feb 2009 16:59
Prispevkov: 198
Aktiv.: 0.99
Kraj: Maribor, Ljubljana

PrispevekObjavljeno: Ned Nov 13, 2011 2:31 pm    Naslov sporočila:   Odgovori s citatom

Po vsej verjetnosti imaš frekvenco procesorja par MHz.

Veliko inštrukcij rabi 1 strojni cikel, da se izvede, dolžina enega strojnega cikla pa je 1/frekvenca čipa.

Pomisli.

S kakšno frekvenco ti utripajo LED diode, če jih v enem strojnem ciklu prižgeš, v drugem ugasneš?

Zakaj ti potem izgleda kot da so prižgane?

Glede na to da pišeš v C-ju ni čisto tako kot sem napisal, ker ne rabiš točno enega cikla, ampak več... Zgoraj pišem za ilustracijo, da boš malo premislil.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
MarkoSan
Član
Član



Pridružen-a: Pon 11 Dec 2006 12:20
Prispevkov: 123
Aktiv.: 0.54
Kraj: Ljubljana

PrispevekObjavljeno: Ned Nov 13, 2011 3:38 pm    Naslov sporočila:   Odgovori s citatom

SkunkyLee je napisal/a:
Po vsej verjetnosti imaš frekvenco procesorja par MHz.

Veliko inštrukcij rabi 1 strojni cikel, da se izvede, dolžina enega strojnega cikla pa je 1/frekvenca čipa.

Pomisli.

S kakšno frekvenco ti utripajo LED diode, če jih v enem strojnem ciklu prižgeš, v drugem ugasneš?

Zakaj ti potem izgleda kot da so prižgane?

Glede na to da pišeš v C-ju ni čisto tako kot sem napisal, ker ne rabiš točno enega cikla, ampak več... Zgoraj pišem za ilustracijo, da boš malo premislil.


Uhh, saj res, hvala obema, sem ze utrujen, ke rnisem skoraj nic spal ... Mr. Green Ok, kaj pa drugi problem?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
SkunkyLee
Član
Član



Pridružen-a: Čet 12 Feb 2009 16:59
Prispevkov: 198
Aktiv.: 0.99
Kraj: Maribor, Ljubljana

PrispevekObjavljeno: Ned Nov 13, 2011 7:27 pm    Naslov sporočila:   Odgovori s citatom

Pogosto se zgodi, da imajo kakšni pini posebne lastnosti in niso GIO z običajnimi tokovnimi zmogljivostmi. Najdi opis porta v datasheetu in preveri zadevo.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
MarkoSan
Član
Član



Pridružen-a: Pon 11 Dec 2006 12:20
Prispevkov: 123
Aktiv.: 0.54
Kraj: Ljubljana

PrispevekObjavljeno: Ned Nov 13, 2011 9:35 pm    Naslov sporočila:   Odgovori s citatom

SkunkyLee je napisal/a:
Pogosto se zgodi, da imajo kakšni pini posebne lastnosti in niso GIO z običajnimi tokovnimi zmogljivostmi. Najdi opis porta v datasheetu in preveri zadevo.
Ja, hvala, sem pogledal, mi je pa prijatelj, ki stvar obvlada povedal, da sem dobil najbrz cist drugo LED diodo (drug proizvajalec in drug model) in da ima drugacne karakteristike od ostalih treh. Najlepsa hvala vsem za pomoc!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 5 dni


Powered by phpBB © 2001, 2005 phpBB Group