- Messaggi: 4
- Ringraziamenti ricevuti 0
gestione porte PIC
5 Anni 3 Mesi fa #1
da Federico_d
Non si può essere sicuri di nulla. Ne sono assolutamente certo!
gestione porte PIC è stato creato da Federico_d
Buongiorno,
come ho scritto nella mia presentazione, sto iniziando a fare i primi esperimenti con un PIC 18F2550 per prendere confidenza col workflow: MPLAB-X 5.2 - PIC Kit 4 - MCU. Ho notato che dopo aver programmato il PIC, se stacco il programmatore e le porte PGD e PGC rimangono "floating", il micro non funziona correttamente. Quindi ho provato a mettere un resistore di pull-down e successivamente ho tolto il resistore e settato le due porte in OUTPUT/LOW. In entrambi i casi tutto sembra funzionare. E' prassi corretta mettere in down queste porte, o ci sono altri accorgimenti che non conosco ?
Grazie,e buona giornata a tutti.
Federico
come ho scritto nella mia presentazione, sto iniziando a fare i primi esperimenti con un PIC 18F2550 per prendere confidenza col workflow: MPLAB-X 5.2 - PIC Kit 4 - MCU. Ho notato che dopo aver programmato il PIC, se stacco il programmatore e le porte PGD e PGC rimangono "floating", il micro non funziona correttamente. Quindi ho provato a mettere un resistore di pull-down e successivamente ho tolto il resistore e settato le due porte in OUTPUT/LOW. In entrambi i casi tutto sembra funzionare. E' prassi corretta mettere in down queste porte, o ci sono altri accorgimenti che non conosco ?
Grazie,e buona giornata a tutti.
Federico
Non si può essere sicuri di nulla. Ne sono assolutamente certo!
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Federico_d
- Autore della discussione
- New Member
Riduci
Di più
5 Anni 3 Mesi fa #2
da Cosimix
Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.
Risposta da Cosimix al topic gestione porte PIC
Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Cosimix
- Elite Member
Riduci
Di più
- Messaggi: 198
- Ringraziamenti ricevuti 26
5 Anni 3 Mesi fa #3
da Mauro Laurenti
Risposta da Mauro Laurenti al topic gestione porte PIC
Salve Federico,
a meno che tu non stia in fase di debug, quando stacchi il programmatore deve funzionare.
Non ci deve essere l'esigenza di collegare PGD e PGC a massa.
Quale schema elettrico stai utilizzando?
Saluti,
Mauro
a meno che tu non stia in fase di debug, quando stacchi il programmatore deve funzionare.
Non ci deve essere l'esigenza di collegare PGD e PGC a massa.
Quale schema elettrico stai utilizzando?
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
5 Anni 3 Mesi fa #4
da Mauro Laurenti
Risposta da Mauro Laurenti al topic gestione porte PIC
...abbiamo scritto in contemporanea.
Quello che è strano è che non funziona quando stacchi il programmatore.
I miei dubbi sono sulla linea MCLR ed eventualmente il watchdog interno (da disabilitare).
Saluti,
Mauro
Quello che è strano è che non funziona quando stacchi il programmatore.
I miei dubbi sono sulla linea MCLR ed eventualmente il watchdog interno (da disabilitare).
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
5 Anni 3 Mesi fa #5
da Federico_d
Non si può essere sicuri di nulla. Ne sono assolutamente certo!
Risposta da Federico_d al topic gestione porte PIC
Posterò lo schema elettrico appena possibile, lo devo disegnare. Nel frattempo aggiungo che il programma fa banalmente lampeggiare un led. Il non-funzionamento si manifesta così: se stacco il PK4 quando il led è spento, questo rimane spento. Se lo stacco a led acceso, questo inizia a sfarfallare esattamente a 50 Hz, misurati da oscilloscopio. Cosa che ovviamente non so spiegare. Mettendo a massa le due suddette porte il led inzia a lampeggiare come mi aspetto. Il pic è impostato per funzionare con l'oscillatore interno a 8 MHz.
Ecco il codice.
#include <stdio.h>
#include <stdlib.h>
#include <pic18f2550.h>
#include <xc.h>
#define DELAY_VALUE 50000
#define FOREVER 1
#pragma config WDT = OFF // Watchdog Timer Enable bit
#pragma config FOSC = INTOSC_EC
int main(int argc, char** argv) {
unsigned long counter = DELAY_VALUE;
TRISA = 0b0000; // set PORTA full output
TRISB = 0b0000; // set PORTB full output
OSCCONbits.IRCF = 0b111; // set internal clock to 8 MHz
PORTBbits.RB6 = 0; // set PGC to down
PORTBbits.RB7 = 0; // set PGD to down
while (FOREVER) {
while(counter)
{
counter--;
}
counter = DELAY_VALUE;
LATAbits.LATA0 = ~LATAbits.LATA0;
}
return (EXIT_SUCCESS);
}
Ecco il codice.
#include <stdio.h>
#include <stdlib.h>
#include <pic18f2550.h>
#include <xc.h>
#define DELAY_VALUE 50000
#define FOREVER 1
#pragma config WDT = OFF // Watchdog Timer Enable bit
#pragma config FOSC = INTOSC_EC
int main(int argc, char** argv) {
unsigned long counter = DELAY_VALUE;
TRISA = 0b0000; // set PORTA full output
TRISB = 0b0000; // set PORTB full output
OSCCONbits.IRCF = 0b111; // set internal clock to 8 MHz
PORTBbits.RB6 = 0; // set PGC to down
PORTBbits.RB7 = 0; // set PGD to down
while (FOREVER) {
while(counter)
{
counter--;
}
counter = DELAY_VALUE;
LATAbits.LATA0 = ~LATAbits.LATA0;
}
return (EXIT_SUCCESS);
}
Non si può essere sicuri di nulla. Ne sono assolutamente certo!
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Federico_d
- Autore della discussione
- New Member
Riduci
Di più
- Messaggi: 4
- Ringraziamenti ricevuti 0
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Login
© LaurTec 2006 - 2024