Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 28 febbraio 06, 22:45   #1 (permalink)  Top
UserPlus
 
L'avatar di davidea
 
Data registr.: 24-08-2004
Residenza: palermo (pa)
Messaggi: 846
Invia un messaggio via MSN a davidea
demoboard pic 16f877 e C

ultimamente ho preso un paio di chicche!

con atmega 32




e con pic 16f877



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......

non ne vuole sapere.......
__________________
73 de davidea!!!
davidea non è collegato   Rispondi citando
Vecchio 01 marzo 06, 08:44   #2 (permalink)  Top
User
 
L'avatar di MSchiepp
 
Data registr.: 21-01-2004
Residenza: Milano
Messaggi: 989
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
__________________
__________________________________________________
The worst day flying is better than the best day working.
MSchiepp non è collegato   Rispondi citando
Vecchio 01 marzo 06, 09:53   #3 (permalink)  Top
User
 
L'avatar di gigiovanni
 
Data registr.: 17-10-2005
Residenza: Palermo
Messaggi: 512
Immagini: 1
Invia un messaggio via MSN a gigiovanni
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
gigiovanni non è collegato   Rispondi citando
Vecchio 01 marzo 06, 11:01   #4 (permalink)  Top
UserPlus
 
L'avatar di davidea
 
Data registr.: 24-08-2004
Residenza: palermo (pa)
Messaggi: 846
Invia un messaggio via MSN a davidea
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!
__________________
73 de davidea!!!
davidea non è collegato   Rispondi citando
Vecchio 01 marzo 06, 11:08   #5 (permalink)  Top
UserPlus
 
L'avatar di davidea
 
Data registr.: 24-08-2004
Residenza: palermo (pa)
Messaggi: 846
Invia un messaggio via MSN a davidea
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!!!
__________________
73 de davidea!!!
davidea non è collegato   Rispondi citando
Vecchio 01 marzo 06, 13:26   #6 (permalink)  Top
User
 
L'avatar di gigiovanni
 
Data registr.: 17-10-2005
Residenza: Palermo
Messaggi: 512
Immagini: 1
Invia un messaggio via MSN a gigiovanni
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...
gigiovanni non è collegato   Rispondi citando
Vecchio 01 marzo 06, 15:24   #7 (permalink)  Top
User
 
L'avatar di MSchiepp
 
Data registr.: 21-01-2004
Residenza: Milano
Messaggi: 989
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
__________________
__________________________________________________
The worst day flying is better than the best day working.
MSchiepp non è collegato   Rispondi citando
Vecchio 01 marzo 06, 15:34   #8 (permalink)  Top
UserPlus
 
L'avatar di davidea
 
Data registr.: 24-08-2004
Residenza: palermo (pa)
Messaggi: 846
Invia un messaggio via MSN a davidea
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!!!
__________________
73 de davidea!!!
davidea non è collegato   Rispondi citando
Vecchio 02 marzo 06, 16:20   #9 (permalink)  Top
User
 
L'avatar di celtec
 
Data registr.: 10-12-2005
Residenza: Roma
Messaggi: 307
Ciao,
ma sul config che tipo di oscillatore hai selezionato ?
Spesso dipende dalla incorretta impostazione del config.
Saluti
Alessandro
__________________
La teoria è alla base di ogni pratica.
celtec non è collegato   Rispondi citando
Vecchio 02 marzo 06, 19:55   #10 (permalink)  Top
UserPlus
 
L'avatar di davidea
 
Data registr.: 24-08-2004
Residenza: palermo (pa)
Messaggi: 846
Invia un messaggio via MSN a davidea
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!!!!!
__________________
73 de davidea!!!
davidea non è collegato   Rispondi citando
Rispondi

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Commento
16f877 Programmazioine pantagimo CNC e Stampanti 3D 5 20 dicembre 06 23:12
Demoboard Pic 18f452 ady Circuiti Elettronici 5 15 luglio 06 00:25
DOMANDE RELATIVE AL PIC16F874 OPPURE 16F877 maverik CNC e Stampanti 3D 3 15 marzo 05 07:04
Pic 16F877 audifly Circuiti Elettronici 6 05 agosto 04 23:51



Tutti gli orari sono GMT +2. Adesso sono le 23:21.


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