Sari la conținut
ELFORUM - Forumul electronistilor

Help first time PIC programmer


Vizitator priza

Postări Recomandate

Buna ziua la toata lumea.Am descoperit si eu de curand cam ce poate sa faca un PIC si m-am apucat de treaba.Ma descurc binisor cu programarea, poate mai rau un pic cu partea de hardware, da eu zic ca si acolo pot progresa.Vreau sa folosesc un PIC16F874 intr-o aplicatie banala (asa mi se parea la inceput) de a apride niste LED-uri cu picu.Problema e ca nu reusesc si nu stiu de ce.Iata ce am facut:Ca programator de PIC-uri folosesc un BeeProg, care stie o sumedenie de microcontrollere iar ca soft FlowCode 3.lucrurile simple pana aici.Am facut un programel sa imi numere pe portu B pana la 255 in binar cu pauza de 150 ms. Este simulat, merge nici o problema pana aici.Am descarcat programu in PIC si m-am apucat de montaj. Folosesc un oscilator de 20MHz cu 2 condesatori de 15pf pt clock.Cand pun pe osciloscop nu imi arata nimica pe portu B. Am mai intrebat si eu lumea si zice ca oscilatoarele cu quartz ar pune mari probleme si ca de acolo e vina.Ce nu fac bine???Atasez si codu in C mai jos#define MX_PIC//Defines for microcontroller#define P16F874#define MX_EE#define MX_EE_TYPE2#define MX_EE_SIZE 128#define MX_SPI#define MX_SPI_C#define MX_SPI_SDI 4#define MX_SPI_SDO 5#define MX_SPI_SCK 3#define MX_UART#define MX_UART_C#define MX_UART_TX 6#define MX_UART_RX 7#define MX_I2C#define MX_MI2C#define MX_I2C_C#define MX_I2C_SDA 4#define MX_I2C_SCL 3#define MX_PWM#define MX_PWM_CNT 2#define MX_PWM_TRIS1 trisc#define MX_PWM_1 2#define MX_PWM_TRIS2 trisc#define MX_PWM_2 1//Functions#include #pragma CLOCK_FREQ 20000000//Configuration data//Internal functions#include "C:\Program Files\Matrix Multimedia\Flowcode V3\FCD\internals.h"//Macro function declarations//Variable declarationsshort FCV_A;char FCLV_LOOP1;//Supplementary defines//Macro implementations//Supplementary implementationsvoid main(){ //Initialisation adcon1 = 0x07; //Interrupt initialisation code option_reg = 0xC0; //Calculation //Calculation: // a = 0FCV_A = 0; //Loop //Loop: Loop 255 times for (FCLV_LOOP1=0; FCLV_LOOP1<255; FCLV_LOOP1++) { //Delay //Delay: 300 ms delay_ms(255); delay_ms(45); //Output //Output: a -> PORT B trisb = 0x00; portb = FCV_A; //Calculation //Calculation: // a = a + 1 FCV_A = FCV_A + 1; } mainendloop: goto mainendloop;}void interrupt(void){}

Link spre comentariu
  • Răspunsuri 4
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • sofian

    1

  • Abram Burel

    1

Top autori în acest subiect

MCLR de la pic trebuie sa fie la +5Vpoti verifica cu osciloscopul pe pini de oscilator de la PIC sa vezi daca oscileazaverifica word-ul de configurare de la PIC, vezi ca trebuie sa fie setat ptr HS-OSC

Link spre comentariu
Vizitator priza

Deci nu pot sa cred, MERGEEE :101 :101 am facut totul de la inceput din nou si a pornit. nu stiu unde am gresit, da nu mai conteaza. MERGEEMULTUMESC PENTRU SUGESTIESigur o sa mai postez si alte probleme cu care ma voi confrunta :sparge: :sparge:

Link spre comentariu

Te inseli cand spui ca "nu conteaza", din contra, este foarte important sa te lamuresti din ce cauza n-a mers ceva si, evident, sa bagi la cap. Altfel, mai devreme sau mai tarziu, o iei de la capat.

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