Sari la conținut
ELFORUM - Forumul electronistilor

Cum sa programez un PIC


Postări Recomandate

  • Răspunsuri 602
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

Top autori în acest subiect

Imagini postate

imi da erori ca nu sunt definite unele (??)

De obicei cand spui ca-ti da erori e bine sa copiezi erorile si sa le postezi.Ca sa ajuti citirea mesajelor, e bine ca pentru bucatile de cod sa folosesti tag-urile [ code ] [/ code ], pentru citate [ quote ] [/ quote ].PS Am pus intentionat pauze la code & quote, altfel nu le afiseaza.
Link spre comentariu

@Gibson: in primul rand codul prezentat de tine nu este pentru uC Microchip. Instructiunile mov, acall, sjmp nu sunt recunoscute de catre Mpasm in mod direct. Dupa cum vad ai preluat un cod creat pentru nucleul 8051 care se regaseste si in Atmel. In cazul acesta trebuie sa adaptezi asm-ul de la 8051 la PIC. ASM-ul e rigid si specific procesorului. Nu se compara cu limbajele de programare de nivel mediu sau inalt care nu tin cont de procesorul tinta. Ma refer la C, Pascal si derivate.

Link spre comentariu

@MatyC: da..mersi maty..daar alta intrebare pot sa fac un prograam in C care sa fie recunoscut in mplab?

Sa fie recunoscut?? Mplab face exact ce ceri de la el. ..... Trebuie un topic special pentru acest IDE numit MPLAB.Ca idee imagineaza-ti acest scenariu. Ai un pachet care vrei sa ajunga la adresa X. Te folosesti de un curier rapid (mplab) insa necunoscand procedura gresesti adresa sau alta informatie. Curierul (mplab) ia pachetul in primire si se duce la adresa Y ca ma rog ai gresit si este scrisa pe pachet. Destinatarul se trezeste cu un pachet la usa dar logic ca refuza pe motiv ca nu cunoaste expeditorul. Curierul se intoarce cu pachetul la tine si te informeaza de situatie. Cam asa este cu acest MPLAB. Este un intermediar care transfera ce ai scris sub forma de cod sursa si-l plaseaza unde ai cerut. Nu este capabil sa te informeze ca ai trimis un cod sursa catre un compilator gresit.Mesajele care apar in mare parte, si in special cele de la final, sunt transmise de catre compilator si in nici un caz de catre MPLAB. Destinatarul se seteza prin Toolsuit.Si raspunsul concret este ca DA. Poti face un program in C care sa fie transportat de catre Mplab. In legatura cu controlul motoarelor step by step eu personal m-am jucat cu un cod sursa scris scris in JALv2.
Link spre comentariu
  • 2 săptămâni mai târziu...

Salut,am scris urmatorul cod :include 12f675include chipdef_jallibpragma target clock 4_000_000pragma target OSC INTOSC_NOCLKOUTpragma target WDT disabledpragma target MCLR internalenable_digital_io()include delay var bit buton is pin_GP4 pin_GP4_direction =input pin_GP2_direction = output pin_GP2=0 forever loop if buton==low then delay_1s(5) pin_GP2=1 else pin_GP2=0 end if end loopProgramul citeste starea intrarii GP4 si daca e butonul apasat atunci introduce un delay de 5 secunde si activeaza iesirea pe portul GP2.Problema este ca revenirea portului GP2 la starea de 0 se face dupa 3 secunde de la eliberarea butonului ,si eu vreau sa se faca imediat.Aveti idee de ce face asa?

Link spre comentariu

Din cauza acelui delay de 5 sec programul nu mai face citirea stari butonului. Ma gandesc ca in timpul procesari delay-lui tu eliberezi butonul (GP4=1). Dupa cum este facut programul logica lui este in felul urmator. Buton nu este apasat drept urmare GP2=0. Apesi scurt timp butonul si abia dupa 5 sec GP2 trece pe 1 si imediat in 0. Daca apesi butonul mai mult de 5 sec GP2 va fi in 1 dupa 5 sec si va ramane asa multiplu de 5 sec. Insa ca idee daca eliberezi butonul dupa ex. 14 sec din cauza acelui delay starea lui GP2 va fi 5sec 0 dupa care va fi 1 timp de 10 sec. La fel si pentru situatia cand butonul este apasat 11 sec.

Link spre comentariu

Am ajuns acasa si am verificat montajul.Daca apas scurt pe buton nu se intimpla nimic,nici dupa 5 sec nici dupa 10.Doar daca tin apasat butonul 5 sec,in a 5 a secunda se activeaza iesirea si daca mentin butonul apasat in continuare nu se intimpla nimic.La eliberarea butonului dupa 3 sec iesirea devine 0.Cam asa sta treaba.

Link spre comentariu

va salut am facut si eu un programator pe serial da nu imi du seama de ce nu imi vede picul din soklu sunt nou in acest domeniu ,programat chiar incepatorvreau sa programez un 16f88 la care am fisierul hex care ar putea fi problema de nu mi-l vede ? :jytuiyu sa fie ceva erore de montare ?dar la 10piese ? :cry:

Link spre comentariu

va salut am facut si eu un programator pe serial da nu imi du seama de ce nu imi vede picul din soklu sunt nou in acest domeniu ,programat chiar incepatorvreau sa programez un 16f88 la care am fisierul hex care ar putea fi problema de nu mi-l vede ? :jytuiyu sa fie ceva erore de montare ?dar la 10piese ? :cry:

Pune schema sa se vada despre care este vorba,pe serial sun mai multe.
Link spre comentariu

Cum verifici starea lui GP2? Ca daca este un led nu prea ai ce sa vezi. Timpi sunt prea mici pentru ochiul uman.Oricum scopul programului nu-l inteleg.

Voiam o temporizare la comanda unui releu.Erau 2 variante:1.Cu controlerul alimentat permanent si citire buton canal intrare bla bla.Era buna si varianta asta ca si timp pe logic 1,doar ca raminea prea mult timp actionat dupa aceea canalul pina trecea in 0.2.Cu controlerul alimentat printr-un contact actionat de mine,programul face delay 5 sec apoi semnal logic 1 timp de 1 sec si apoi trece in 0,suficient cit sa comande o bobina care deschide portbagajul.Am scos if-ul si els-ul si a a ramas doar bucla cu delay si merg pe varianta 2.Multumesc pentru ajutor.
Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări