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 

Pomoč pri programiranju

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



Pridružen-a: Sre 11 Jul 2012 0:38
Prispevkov: 651
Aktiv.: 4.56
Kraj: Ravne/LJ/Kobarid

PrispevekObjavljeno: Ned Apr 13, 2014 12:28 am    Naslov sporočila:  Pomoč pri programiranju Odgovori s citatom

Moram opraviti za faks neke meritve ter podati poročila. Zanima me, če mi lahko kdo pomaga pri tem.

Pic: dsPIC33F modul z DSC krmilnikom dsPIC33FJ12GP202

Prva naloga:
"Izmerite interval prekinitev in interval preklopa LED diod."

Zanima me, kam naj vstavim breakpointe(za merjenje z stopwatchom) ter kam za merjenje dolžine utripa diode?

Koda:
//*****************************************************************
//* 28pin_UART_TX-RX_Using_USB                                                     
//*****************************************************************

#include "p33FJ12GP202.h"
// the above include path may be different for each user.  If a compile
// time error appears then check the path for the file above and edit
// the include statement above.

//#define XTFREQ          7370000         //FRC frequency
#define FCY             39613000        //Instruction Cycle Frequency

#define BAUDRATE         9600           
#define BRGVAL          ((FCY/BAUDRATE)/16)-1

int main(void)
{

// Configure Oscillator to operate the device at 40Mhz
// Fosc= Fin*M/(N1*N2), Fcy=Fosc/2
// Fosc= 7.37*43/(2*2)=79.23MHz
   PLLFBD=41;               // M=43
   CLKDIVbits.PLLPOST=0;      // N1=2
   CLKDIVbits.PLLPRE=0;      // N2=2

// Disable Watch Dog Timer
   RCONbits.SWDTEN=0;

// Wait for PLL to lock
   while(OSCCONbits.LOCK!=1) {};

   RPINR18 = 9;         // Make Pin RP9 U1RX
   RPOR4bits.RP8R = 3;      // Make Pin RP8 U1TX

   AD1PCFGL = 0x03C0;      // Make analog pins digital

   LATB = 0x0000;
   TRISB = 0x0FFF;         // Config LED's as output and U1RX as Input

   TMR1 = 0;            // clear timer 1
   PR1 = 0xFFFF;         // interrupt every 400ms
   IFS0bits.T1IF = 0;      // clr interrupt flag
   IEC0bits.T1IE = 1;      // set interrupt enable bit
   T1CON = 0x8030;         // 1:64 prescale, start TMR1


   U1BRG  = BRGVAL;
   U1MODE = 0x8000; /* Reset UART to 8-n-1, alt pins, and enable */
   U1STA  = 0x0440; /* Reset status register and enable TX & RX*/


_U1RXIF=0;
   
while(1)
   {
   
      int a;
       
      while (_U1RXIF==0);         // Wait and Receive One Character
      a = U1RXREG;
       
      while(!U1STAbits.TRMT);
      U1TXREG = '"';
   
      while(!U1STAbits.TRMT);      // Echo Back Received Character with quotes
      U1TXREG = a;
   
      while(!U1STAbits.TRMT);
      U1TXREG = '"';
   
      while(!U1STAbits.TRMT);
      U1TXREG = ' ';     
   
      _U1RXIF=0;               // Clear UART RX Interrupt Flag
}

return 0;
}

void __attribute__((__interrupt__, no_auto_psv)) _T1Interrupt(void)
{
   IFS0bits.T1IF = 0;   // clear interrupt flag
   
   LATB ^= 0xF000;      //Toggle LED's
}

_________________
Predlagam, da kar napišem, si čimprej skopirat, saj bodo šerifi tega foruma verjetno pobrisali s predpostavko, da ne prispeva (dosti) k vrednosti foruma.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
int47
Član
Član



Pridružen-a: Pon 15 Dec 2003 0:10
Prispevkov: 2066
Aktiv.: 9.30
Kraj: Ljubljana

PrispevekObjavljeno: Ned Apr 13, 2014 1:51 am    Naslov sporočila:  Re: Pomoč pri programiranju Odgovori s citatom

Jakey je napisal/a:
Zanima me, kam naj vstavim breakpointe(za merjenje z stopwatchom) ter kam za merjenje dolžine utripa diode?

Shame on you Če ugodimo tvoji prošnji, boš verjetno rešil nalogo, vendar se pri tem ne boš naučil skoraj nič.
Pri naslednji podobni nalogi bo spet tema.

Naštudiraj kako program deluje, ali vsaj v kateri vrstici prižiga in ugaša LED.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Jakey
Član
Član



Pridružen-a: Sre 11 Jul 2012 0:38
Prispevkov: 651
Aktiv.: 4.56
Kraj: Ravne/LJ/Kobarid

PrispevekObjavljeno: Sre Apr 16, 2014 12:43 am    Naslov sporočila:  Re: Pomoč pri programiranju Odgovori s citatom

int47 je napisal/a:
Jakey je napisal/a:
Zanima me, kam naj vstavim breakpointe(za merjenje z stopwatchom) ter kam za merjenje dolžine utripa diode?

Shame on you Če ugodimo tvoji prošnji, boš verjetno rešil nalogo, vendar se pri tem ne boš naučil skoraj nič.
Pri naslednji podobni nalogi bo spet tema.

Naštudiraj kako program deluje, ali vsaj v kateri vrstici prižiga in ugaša LED.

Res je, imam 4 naloge za "rešit". Zato pa se lotujem postopno(čeprav roko na srce MOČNO upam, da nikoli nebom rabil delati s pic-i, ker mi je resnično muka), in bi rad vsaj osnovno razumel; jezik kot C razumem, niso mi pa jasni ukazi.

_________________
Predlagam, da kar napišem, si čimprej skopirat, saj bodo šerifi tega foruma verjetno pobrisali s predpostavko, da ne prispeva (dosti) k vrednosti foruma.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Tonny
Član
Član



Pridružen-a: Sre 23 Dec 2009 11:57
Prispevkov: 289
Aktiv.: 1.66
Kraj: Vrhnika - MS

PrispevekObjavljeno: Pet Apr 18, 2014 7:55 am    Naslov sporočila:  Re: Pomoč pri programiranju Odgovori s citatom

Jakey je napisal/a:
Res je, imam 4 naloge za "rešit". Zato pa se lotujem postopno(čeprav roko na srce MOČNO upam, da nikoli nebom rabil delati s pic-i, ker mi je resnično muka), in bi rad vsaj osnovno razumel; jezik kot C razumem, niso mi pa jasni ukazi.


Misliš, da je pri drugih mlinčkih (npr. AVR, MSP430, itd.) kaj drugače? Smile

Katerih ukazov ne razumeš? Glede na to, da "C" poznaš, ti težave verjetno delajo tiste čudne besede, napisane z veliko?

To so imena registrov uC-ja, tisto kar je za piko pa je poimensko določen bit v določenem registru. Na katerem naslovu se nahaja register je definirano v .h datoteki, katera je vključena na začetku programa. Ampak to zaenkrat sploh ni pomembno, ker so v datasheet-u vsi registri in biti predstavljeni z enakimi imeni kot v tvojem programu. Še več - za vsak register se tam najde podroben opis kaj njegovi bitki počnejo. Poleg tega pa imaš opis, kaj določen ukaz naredi, tudi v komentarjih v programu.

Malo bolj podrobno definiraj česa ne razumeš. Wink
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Jakey
Član
Član



Pridružen-a: Sre 11 Jul 2012 0:38
Prispevkov: 651
Aktiv.: 4.56
Kraj: Ravne/LJ/Kobarid

PrispevekObjavljeno: Pet Apr 18, 2014 12:12 pm    Naslov sporočila:  Re: Pomoč pri programiranju Odgovori s citatom

Tonny je napisal/a:

Misliš, da je pri drugih mlinčkih (npr. AVR, MSP430, itd.) kaj drugače? Smile

kolikor sem delal z Atmeli, ni ravno kaj dosti drugače..se mi pa zdi, da je dosti bolj pregledno :S

Tonny je napisal/a:

Katerih ukazov ne razumeš? Glede na to, da "C" poznaš, ti težave verjetno delajo tiste čudne besede, napisane z veliko?

Bo držalo Smile

Tonny je napisal/a:

Malo bolj podrobno definiraj česa ne razumeš. Wink

Za začetek, katera vrstica vklopi diode in katera izklopi.

_________________
Predlagam, da kar napišem, si čimprej skopirat, saj bodo šerifi tega foruma verjetno pobrisali s predpostavko, da ne prispeva (dosti) k vrednosti foruma.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Tonny
Član
Član



Pridružen-a: Sre 23 Dec 2009 11:57
Prispevkov: 289
Aktiv.: 1.66
Kraj: Vrhnika - MS

PrispevekObjavljeno: Pet Apr 18, 2014 2:26 pm    Naslov sporočila:  Re: Pomoč pri programiranju Odgovori s citatom

Jakey je napisal/a:
Za začetek, katera vrstica vklopi diode in katera izklopi.


To je bolj konec kot začetek, pa vseeno. Smile
- AD1PCFGL register določa, kateri pini kontrolerja so definirani kot digitalni
- TRIS register določa, kateri digitalni pini so definirani kot izhodi in kateri kot vhodi
- LAT register določa stanje izhodnih digitalnih pinov (visoko/nizko)
- "^" je bitni operator XOR (poglej si tabelco za XOR)
- ukaz "LATB ^= 0xF000;" je enak LATB = LATB ^ 0xF000

Mislim da je to vse kar se tiče ledic.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
int47
Član
Član



Pridružen-a: Pon 15 Dec 2003 0:10
Prispevkov: 2066
Aktiv.: 9.30
Kraj: Ljubljana

PrispevekObjavljeno: Sob Apr 19, 2014 1:59 pm    Naslov sporočila:   Odgovori s citatom

Ali je res tako težko prebrat komentarje v kodi ?
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 -> Microchip PIC Č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: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group