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 

Težava s PIC16F737
Pojdi na stran 1, 2  Naslednja
 
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
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Čet Jun 17, 2010 8:34 pm    Naslov sporočila:  Težava s PIC16F737 Odgovori s citatom

Pozdravljeni,

da ne odpiram nove teme z zelo zacetnimi tezavami s PICC programiranjem se obracam na vas kar tule.

Z mojim zacetniskim (ne)znanjem mi uspeva krmiliti izhode PICa, vhodov pa nikakor ne morem brati, oziroma jih spravit v funkcijo.

Moj testni programcek, narejen po nasvetih iz zacetka te teme zgleda tako:
(include vrstic in glave programa nisem kopiral ker v primeru izhodov deluje vse ok ..)
Koda:

void main()
{
ANSEL = 0;  //
CMCON = 7; // Turn off the comparators
TRISA = 0b11111111; //0=output, 1=input
TRISB = 0b00000000;
TRISC = 0b00001111;

while(1){
output_high(RC4);

if (input(RA7))
   {
   output_high(RB7);
   }
else
   {
   output_low(RB7);
   }
      }
}

Problem je ze v compil-anju programa, saj mi pri ukazu ansel, cmcon in trisx javi napako.

btw.. delam s picom 16F737.

Hvala za vse nasvete in odgovore
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
bungee
Član
Član



Pridružen-a: Pon 07 Mar 2005 18:49
Prispevkov: 1479
Aktiv.: 6.24
Kraj: Ljubljana

PrispevekObjavljeno: Čet Jun 17, 2010 8:56 pm    Naslov sporočila:   Odgovori s citatom

1. kateri prevajalnik uporabljaš?
2. prilepi še program, kjer ti delujejo izhodi
3. morda ravno v glavi programa manjka bistven del....

Glede na to, pa da uporabljaš popolnoma drug PIC lahko tudi novo temo odpreš Wink
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Čet Jun 17, 2010 9:18 pm    Naslov sporočila:   Odgovori s citatom

bungee je napisal/a:
1. kateri prevajalnik uporabljaš?
2. prilepi še program, kjer ti delujejo izhodi
3. morda ravno v glavi programa manjka bistven del....

Glede na to, pa da uporabljaš popolnoma drug PIC lahko tudi novo temo odpreš Wink


Prevajalnik je PCWH compiler.

Program z izhodi je kar direktno v main napisana vrstica output_high(RB0);
glava programa je kopirana iz enega drugega primera in je taksna:
#include <16F767.h>

#fuses INTRC, NOWDT, NOPROTECT, NOMCLR, NOPUT
#use delay(clock=4000000)

#define RA0 PIN_A0
#define RA1 PIN_A1
#define RA2 PIN_A2
.....
#define RC7 PIN_C7
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 18.41

PrispevekObjavljeno: Čet Jun 17, 2010 9:38 pm    Naslov sporočila:   Odgovori s citatom

CCS ima definirane funkcije in se ni treba jajcat v stilu REGISTER=VREDNOST.
Lahko pa tudi to počneš, če hočeš imet asembler s C sintakso...

_________________
Tule nisem več aktiven.


Nazadnje urejal/a gumby Čet Jun 17, 2010 9:43 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
jabcek
Član
Član



Pridružen-a: Pet 14 Nov 2008 20:26
Prispevkov: 40
Aktiv.: 0.20
Kraj: Liboje

PrispevekObjavljeno: Čet Jun 17, 2010 9:40 pm    Naslov sporočila:   Odgovori s citatom

jup, zbriši ta register iz programa, ker je že po defaultu na digital. Sicer pa mislim da ima ta pic za spreminjanje tega registra ADCON0,ADCON1 in ADCON2. Več o nastavitvah si pa preberi v datasheetu:
http://pdf1.alldatasheet.com/datasheet-pdf/view/101770/MICROCHIP/PIC16F767.html
stran 154 dalje.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Čet Jun 17, 2010 9:50 pm    Naslov sporočila:   Odgovori s citatom

bi lahko kdo kar napisal tak cist osnovni programcek za vklop izhoda ce je nek vhod na 1 prosim. Se mi zdi da je vsaka verzija teh compilerjev z drugacnimi ukazi...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
bungee
Član
Član



Pridružen-a: Pon 07 Mar 2005 18:49
Prispevkov: 1479
Aktiv.: 6.24
Kraj: Ljubljana

PrispevekObjavljeno: Čet Jun 17, 2010 9:58 pm    Naslov sporočila:   Odgovori s citatom

Evo, pri CCS prevajalniku to narediš takole:
Koda:
#include <16F767.h>
#device adc=8
#FUSES NOWDT, INTRC_IO, PUT, NOPROTECT, NOBROWNOUT, BORV20, NOMCLR, NODEBUG, NOFCMEN, NOIESO, BORSEN
#use delay(clock=8000000)

void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF|ADC_TAD_MUL_0);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   setup_oscillator(OSC_8MHZ|OSC_TIMER1);


   while(1)
   {
      if (input(Pin_A7)) output_high(Pin_B7);
      else output_low(pin_b7);                 
   }
}


Za smer portov ti skrbi prevajalnik sam. Wink

Če boš vseeno dodal še kakšen ukaz med pogoje lahko to izgleda tudi takole:
Koda:
      if (input(Pin_A7))
      {
         output_high(Pin_B7);
      }
      else
      {
         output_low(pin_b7);
      }
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
jabcek
Član
Član



Pridružen-a: Pet 14 Nov 2008 20:26
Prispevkov: 40
Aktiv.: 0.20
Kraj: Liboje

PrispevekObjavljeno: Čet Jun 17, 2010 10:04 pm    Naslov sporočila:   Odgovori s citatom

v microchipovem MPLAB-u in HI-TECH compilerju
Koda:
#include <pic.h>


#define STIKALO1    RB4  //(PORTB&0x10)     
#define STIKALO2    RB5  //(PORTB&0x20)

char a;
void inicializacija(void)
{
   TRISD = 0b00000000;        // Vsi prikljueki kot izhodi
   PORTD = 0b00000000;        // Na vse izhode postavimo
   TRISB = 0b00110000;         // Določimo vhoda
}


int main()
{
   inicializacija();          //inicializirajmo potrebno periferijo
   
   a=0;

    while (1)
   {           
      PORTD=a;   
               
      if(!STIKALO1)
      {                   
         while (!STIKALO1){};       
            a=a+1;        //Povečaš a
        }
      else if(!STIKALO2)
      {
         while (!STIKALO2){};   
            a=a-1;        //Zmanjšaš a
      }                                                 
    }
}
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Čet Jun 17, 2010 10:15 pm    Naslov sporočila:   Odgovori s citatom

tnx, sem skopiral to kodo in se vidi da vhodi delujejo. Vendar se pa dogaja se to da namesto da bi se izhodi pri else delu ugasnili, utripajo z neko visoko frekvenco, tako kot da bi se v naslednjem ciklu programa nazaj vklopli. Morda potrebna nastavitev kakih pull up ali pull down internih uporov?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
frenki
Moderator
Moderator



Pridružen-a: Ned 23 Feb 2003 21:26
Prispevkov: 6732
Aktiv.: 28.42
Kraj: Ljubljana (JN76GB)

PrispevekObjavljeno: Čet Jun 17, 2010 10:21 pm    Naslov sporočila:   Odgovori s citatom

taubek je napisal/a:
... da ne odpiram nove teme ...

O tem smo enkrat že debatirali. In mimogrede ... a veš da se na začetku stavka uporablja velike začetnice? Pa da slovenski jezik pozna tudi znake kot so ČŠŽ?

Tole je zadnje opozorilo na to temo. Naslednji prispevek, ki ne bo v skladu z dogovorjenimi pravili in standardi leti ne glede na vsebino med smeti. Tole velja zate in ostale, ki preizkušate meje tolerance.

Lp, Frenki
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Čet Jun 17, 2010 10:31 pm    Naslov sporočila:   Odgovori s citatom

Pardon, frenki se opravičujem za pravopisne napake in neodprto novo temo.

Jabcek, kodo sem spremenil in namesto output_high (RB7) napisal output_b(0x80), namesto output_low pa output_b(0x00). Zadeva sedaj deluje ok za vse ostale izhode ki jih trenutno uporabljam, na RB7 pa LED se vedno utripa in ne ugasne.

Mi pa ne da na vse izhode 5V ampak na nekatere ja na nekatere pa manj. Mogoce se kak predlog glede tega?

Sicer pa hvala za primerček glede branja vhodov.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
jabcek
Član
Član



Pridružen-a: Pet 14 Nov 2008 20:26
Prispevkov: 40
Aktiv.: 0.20
Kraj: Liboje

PrispevekObjavljeno: Čet Jun 17, 2010 10:41 pm    Naslov sporočila:   Odgovori s citatom

Nekateri porti so narejeni tako, da nimajo na vseh pinih dovoljenih vhodov oz. izhodov (ponekod jih moreš ročno nastavit, ponekod pa jih sploh ne moreš).

Pri meni, kolikor sem meril, sem imel vedno padce napetosti tam kjer sem imel gor diode. Brez diod pa je bilo 5v.

Sicer pa za diode tako ali tako ne potrebuješ 5v.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Čet Jun 17, 2010 10:54 pm    Naslov sporočila:   Odgovori s citatom

jabcek je napisal/a:
Nekateri porti so narejeni tako, da nimajo na vseh pinih dovoljenih vhodov oz. izhodov (ponekod jih moreš ročno nastavit, ponekod pa jih sploh ne moreš).

Pri meni, kolikor sem meril, sem imel vedno padce napetosti tam kjer sem imel gor diode. Brez diod pa je bilo 5v.

Sicer pa za diode tako ali tako ne potrebuješ 5v.


Več diod mam proženih preko tranzistorjev ki se ne odprejo popolnoma če ni na njih vsaj 5V.

Ta isti sistem sem uporabljal že pred tem poskušanjem z vhodi. Sem mel varjante raznih knightriderjev, ki so se časovno izvajale ena za drugo. Za učenje programiranja in malo igranja je bilo to ok. Zdaj bi pa rad malo nadgradil svoje znanje tako da bi z večstopenjskim stikalom izbiral funkcijo utripanja LED in potem počasi naprej koliko bo pač čas dopuščal..

Izhodna napetost na pinih je okrog 3,7V namesto 5V. Taksna napetost mi pa odpre tranzistor namesto na 12V na približno 8V.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
jabcek
Član
Član



Pridružen-a: Pet 14 Nov 2008 20:26
Prispevkov: 40
Aktiv.: 0.20
Kraj: Liboje

PrispevekObjavljeno: Čet Jun 17, 2010 11:00 pm    Naslov sporočila:   Odgovori s citatom

Pa uporabi tranzistorje, ki potrebujejo manjšo napetost.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Čet Jun 17, 2010 11:06 pm    Naslov sporočila:   Odgovori s citatom

ne vem zakaj v tem primeru nebi šlo s temi, če je pri časovnem zaporedju funkcij vse delalo ok...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
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
Pojdi na stran 1, 2  Naslednja
Stran 1 od 2

 
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: 493 dni


Powered by phpBB © 2001, 2005 phpBB Group