BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Circuiti Elettronici (https://www.baronerosso.it/forum/circuiti-elettronici/)
-   -   demoboard pic 16f877 e C (https://www.baronerosso.it/forum/circuiti-elettronici/20580-demoboard-pic-16f877-e-c.html)

davidea 28 febbraio 06 22:45

demoboard pic 16f877 e C
 
ultimamente ho preso un paio di chicche!

con atmega 32

http://i18.ebayimg.com/03/i/05/fb/48/32_1_b.JPG


e con pic 16f877

http://i2.ebayimg.com/03/i/06/3a/de/58_1_b.JPG

ho realizzato il fisier programmer, e sto realizzando il programmatore per atmel (scala permettendo!!!!, non me ne volere max, ma se non riesco a scalare correttamente il tuo, mi sa' che faro quello di fiser!!!)

dopo aver attrezzato per benino il pc, con i vari sw, decido di partire con lo sviluppo sui pic, visto che gia' ho tutto pronto!

apro mplab, creo un nuovo progetto come target 16f877a e inserisco il seguente sorgente:

Codice:

/*prova*/
/* 27-02-2006*/
/*  */

#include <pic.h>
#include <pic168xa.h>
 



main ()
{

__CONFIG($2789);


TRISA = 0b00000000;
PORTA = 0b11111111;
TRISB = 0b00000000;
PORTB = 0b11111111;
TRISC = 0b00000000;
PORTC = 0b11111111;
TRISD = 0b00000000;
PORTD = 0b11111111;
TRISE = 0b00000000;
PORTE = 0b11111111;

}

dovrei cosi' settare come uscite tutte le porte, e mettere a 1 tutte le uscite .......
e accendere gli 8 led sulla portb

dovrei...... :(:wacko:

non ne vuole sapere.......

MSchiepp 01 marzo 06 08:44

Citazione:

Originalmente inviato da davidea
non ne vuole sapere.......

Cerca di essere più convincente... ad esempio prova a dirgli che deve usare PORT A per i/o dgitale e non per il convertitore!
Aggiungi questa riga:

ADCON1 = 0x06;

prima dell'assegnamento delle porte e vedrai che migliora!

Michele

gigiovanni 01 marzo 06 09:53

premetto che io i pic li programmo i basic...e di C ne so poco....

Citazione:

#include<pic168xa.h>
Non dovrebbe essere tipo #include<pic16f8xxa.h>
o che ne so, #include<pic168xxa.h>

insomma, dato che usi il 16f877...qualcosa deve cambiare no ? a me sembra che con l'include che gli dai tu puoi programmare i simili del 16f84 o sbaglio ?


ps: occhio che negli include ci stanno gli indirizzi fisici delle porte I/O quindi se sbagli quelli... eheh

davidea 01 marzo 06 11:01

Citazione:

Originalmente inviato da MSchiepp
Cerca di essere più convincente... ad esempio prova a dirgli che deve usare PORT A per i/o dgitale e non per il convertitore!
Aggiungi questa riga:

ADCON1 = 0x06;

prima dell'assegnamento delle porte e vedrai che migliora!

Michele

io ci provo ad essere convincente, ma anche se gli dico che PORTA e' digitale, non cambia niente!!!!
in ogni caso doveva darmi problemi solo PORTA e non anche gli altri !

debbo definire qualcosa di particolare??

oggi provo a compilare per il 16f876 e vediamo come si comporta!

davidea 01 marzo 06 11:08

Citazione:

Originalmente inviato da gigiovanni
premetto che io i pic li programmo i basic...e di C ne so poco....


Non dovrebbe essere tipo #include<pic16f8xxa.h>
o che ne so, #include<pic168xxa.h>

insomma, dato che usi il 16f877...qualcosa deve cambiare no ? a me sembra che con l'include che gli dai tu puoi programmare i simili del 16f84 o sbaglio ?


ps: occhio che negli include ci stanno gli indirizzi fisici delle porte I/O quindi se sbagli quelli... eheh

no, avevo gia controllato, all' interno dell' include vi e' tra i commenti i pic che gestisce, ed e' elencato il 16f877a

ho controllato pure all' interno dell' header che siano corrette le locazioni delle port e tris ed e' tutto ok!!!

gigiovanni 01 marzo 06 13:26

Sai se il compilatore che usi passa automaticamente tra le 4 pagine della ram ? perchè credo che i registri delle porta PORTA e PORTB e i registri di configurazione delle porte TRISA e TRISB siano su pagine diverse.... il mio compilatore passa automaticamente da un banco all'altro...il tuo non so...

ps: se non lo fa automaticamente lo devi fare tu a mano eheh...

MSchiepp 01 marzo 06 15:24

Il codice così com'è funziona senza problemi; il secondo include non serve in quanto la 'include pic.h' serve solo a richiamare il file di include del processore dichiarato in 'configure - select device'.
Se hai dubbi puoi aprire la finestra di watch, inserire le porte e simulare il programma in MPLAB e vedrai che i bit delle porte si posizionano correttamente; questo serve a garantire che tutti i settaggi sw siano corretti: se rimuovi l'istruzione ADCON1=6 vedrai che la porta A non risponde più correttamente.
Se sul micro reale continua a non funzionare verifica clock e reset.

Ciao

Michele

davidea 01 marzo 06 15:34

Citazione:

Originalmente inviato da MSchiepp
Il codice così com'è funziona senza problemi; il secondo include non serve in quanto la 'include pic.h' serve solo a richiamare il file di include del processore dichiarato in 'configure - select device'.
Se hai dubbi puoi aprire la finestra di watch, inserire le porte e simulare il programma in MPLAB e vedrai che i bit delle porte si posizionano correttamente; questo serve a garantire che tutti i settaggi sw siano corretti: se rimuovi l'istruzione ADCON1=6 vedrai che la porta A non risponde più correttamente.
Se sul micro reale continua a non funzionare verifica clock e reset.

Ciao

Michele

gia provato in watch e va', sul micro reale no, il bello e' che se carico il sw che mi hanno dato col micro, che fa' lampeggiare i led e girare una scritta scorrevole sul display quello va'!!!!
ho verificato che il pin 1 mclr sia a 1, e lo e'!!!
l' unica alternativa e' disinstalalre il compilatore e reinstallarlo!!!

celtec 02 marzo 06 16:20

Ciao,
ma sul config che tipo di oscillatore hai selezionato ?
Spesso dipende dalla incorretta impostazione del config.
Saluti
Alessandro

davidea 02 marzo 06 19:55

Citazione:

Originalmente inviato da celtec
Ciao,
ma sul config che tipo di oscillatore hai selezionato ?
Spesso dipende dalla incorretta impostazione del config.
Saluti
Alessandro


BINGO


era impostato XT , che erroneamente avevo capito come quarzo,,,,, controllando sulla demoboard, vi e' un quarzo da 8 mhz, e caricando su epicwin il sw originale mi diceva HS, ho cercato sul datasheet, ed e' indicato XT fino a 4 mhz, dopo HS!!!!!!!

CHE PIRLA CHE SONO.....

GRAZIE 1000, a te, michele e tutti quelli che ci hanno provato!!!!!


Tutti gli orari sono GMT +2. Adesso sono le 12:43.

Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002