BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Circuiti Elettronici (https://www.baronerosso.it/forum/circuiti-elettronici/)
-   -   PIC12f683 e configurazione (https://www.baronerosso.it/forum/circuiti-elettronici/186827-pic12f683-e-configurazione.html)

Alfa_life 20 settembre 10 05:11

Citazione:

Originalmente inviato da romoloman (Messaggio 2229089)
1) il 12F683 ha un oscillatore interno abbastanza preciso fino a 8Mhz perchè ti devi sbattere a metterci un quarzo ?
2) esiste un bel programmino che si chiama pic simulator ide se il programma gira li allora il problema è nel circuito..

Non c'è un motivo preciso, ho sempre fatto tutti gli schemi con quarzo e anche in questo c'è andato in automatico senza controllare la presenza del oscillatore interno in quanto mi bastano 3 pin liberi, in oltre pensavo che mantenendo stessa tipologia di circuito potevo mantenere stessa configurazione ed invece non è cosi, con wdt_off e xt _osc_on , non funziona..
Anche in mikrobasic si definisce la frequenza nell apposita casella, unica parte della configurazione che credo di non aver sbagliato, in quanto ho sempre scritto 4 ed è sempre andata bene, comunque ricontrollo se bisogna scrivere il valore in MHz per maggiore sicurezza, poi provo comunque ad eliminare il quarzo e il master clear per provare la tua configurazione sperando che cominci a funzionare..
Il programma di cui parli simula i diversi dispositivi o controlla semplicemente se il software è corretto??
Perche lo stesso software sul 16f876a funziona, ovviamente invertendo GPIO.n con portc.n , e invertendo trisio.n=0 con trisc.n=0 . dove n sta per il numero della porta.

illez 20 settembre 10 08:33

Citazione:

Originalmente inviato da Alfa_life (Messaggio 2229838)
Perche lo stesso software sul 16f876a funziona, ovviamente invertendo GPIO.n con portc.n , e invertendo trisio.n=0 con trisc.n=0 . dove n sta per il numero della porta.

Non conoscendo il mikrobasic potrei dire una solenne baggianata, ma perché non provi ad indirizzare i pin come porta.n???
Se lo compila, dovrebbe essere giusto anche come hai scritto tu, però...:rolleyes:
provare non costa nulla

romoloman 20 settembre 10 08:54

Citazione:

Originalmente inviato da Alfa_life (Messaggio 2229838)
Il programma di cui parli simula i diversi dispositivi o controlla semplicemente se il software è corretto??

No il software emula anche un discreto numero di dispositivi hardware compresi un generatore d'impulsi in ingresso un oscilloscopio, moduli LCD etc etc inoltre ha integrato un suo compilatore basic
lo puoi vedere al seguente link
PIC Simulator IDE with Basic Compiler, Assembler, Disassembler and Debugger

La licenza ad uso personale costa 39€ e secondo me vale tutti i soldi che costa, puoi scaricare il software ti funziona per 30 volte in versione demo

illez 20 settembre 10 13:32

Per curiosità ho installato il mikrobasic e il simulatore;
il programma non funziona, accende e spegne solo una porta :blink:

In pratica le istruzioni
gpio.0=1
gpio.1=1
gpio.2=1

accendono la porta 0, poi 1 (e si spegne la 0) e poi 2 (e si spengono le altre 2)
romoloman, come te lo spieghi??

In ogni caso, mi funziona se scrivo
GPIO=7
oppure
GPIO=0

bo'...:unsure:

romoloman 20 settembre 10 14:17

prova ad invertire l'ordine ovvero parti dalla gpio.2 e scendi alla gpio.0

Alfa_life 20 settembre 10 14:22

Citazione:

Originalmente inviato da illez (Messaggio 2230118)
Per curiosità ho installato il mikrobasic e il simulatore;
il programma non funziona, accende e spegne solo una porta :blink:

In pratica le istruzioni
gpio.0=1
gpio.1=1
gpio.2=1

accendono la porta 0, poi 1 (e si spegne la 0) e poi 2 (e si spengono le altre 2)
romoloman, come te lo spieghi??

In ogni caso, mi funziona se scrivo
GPIO=7
oppure
GPIO=0

bo'...:unsure:


Funziona ...

Grazie grazie grazie ..


Utilizzando gpio = 0 e gpio = 7 intervallandoli degli appositi delay i servi si muovono ..

E impostando master_clear_0ff e osc_int_on funziona anche senza quarzo e ho 3 pin liberi in piu per altre utenze..

grazie a tutti ..
poi quando romoloman risponderà a illez vedremo di capire come mai accada questo..

non posso scrivere port.n nel 12f683 perche il 16f876a ha da datasheet 3 porte ( A B C ) relativemante con 6 pin , 8 pin e 8 pin , mentre il 12f683 ne ha solo una e non si chiama nemmeno porta A ma solo GPIO0 , 1 , 2 , 3 ecc ..

Comunque per ora tutto risolto , la cosa si complicherà un po quando dovrò far muovere i 3 servi con movimenti diversi ..

Grazie ancora a tutti . .

illez 20 settembre 10 14:31

Citazione:

Originalmente inviato da romoloman (Messaggio 2230172)
prova ad invertire l'ordine ovvero parti dalla gpio.2 e scendi alla gpio.0

idem, vale solo l'ultima.

Ho googlato un pochino ma non ho trovato possibili spiegazioni; ho guardato l'assembly, il codice prodotto è:
$000F $1105 BCF GPIO, 2
$0010 $1085 BCF GPIO, 1
$0011 $1005 BCF GPIO, 0

Non sono un guru dei PIC, ma questa cosa non me la spiego

romoloman 20 settembre 10 14:31

Citazione:

Originalmente inviato da Alfa_life (Messaggio 2230180)
Funziona ...

grazie a tutti ..
poi quando romoloman risponderà a illez vedremo di capire come mai accada questo..

Con proton picbasic pro sono sicuro che se non lo faccio in quel modo ovvero dal bit più alto al bit più basso non funziona...

romoloman 20 settembre 10 14:38

Citazione:

Originalmente inviato da illez (Messaggio 2230195)
idem, vale solo l'ultima.

Ho googlato un pochino ma non ho trovato possibili spiegazioni; ho guardato l'assembly, il codice prodotto è:
$000F $1105 BCF GPIO, 2
$0010 $1085 BCF GPIO, 1
$0011 $1005 BCF GPIO, 0

Non sono un guru dei PIC, ma questa cosa non me la spiego

Strano, lascerebbe pensare a un baco del compilatore assembler perché l'istruzione prodotta è corretta:
BCF, BSF Example: BCF status,Z
These instructions clear (BCF) or set (BSF) the indicated bit in a register. The bit may have a name (like Z) or you can use a number from 0 to 7 (0 is the least significant bit and 7 is the most significant).

illez 20 settembre 10 14:41

Citazione:

Originalmente inviato da romoloman (Messaggio 2230206)
Strano, lascerebbe pensare a un baco del compilatore assembler perché l'istruzione prodotta è corretta:
BCF, BSF Example: BCF status,Z
These instructions clear (BCF) or set (BSF) the indicated bit in a register. The bit may have a name (like Z) or you can use a number from 0 to 7 (0 is the least significant bit and 7 is the most significant).

Leggi qui:
GPIO Bit Error in PIC12F675

forse un problema del PIC?

vado a cercare nel sito microchip...:fiu:


Tutti gli orari sono GMT +2. Adesso sono le 17:55.

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