PIC12f675 - Lettura pulsante

4 Anni 7 Mesi fa #6 da Cosimix
Risposta da Cosimix al topic pic12f675
Salve!

Trovato il bandolo della matassa?

Se il gioco del cambio di stato del valore di uscita non è frequente, puoi pensare di memorizzare di volta in volta il valore nella EEPROM prima della nuova lettura e richiamare lo stesso valore nel caso in dui dovesse riavviarsi il PIC.
Se il gioco è frequente non conviene tanto perché i cicli di scrittura nella memoria EEPROM non sono illimitati, seppur in numero elevato.
Una soluzione spesso usata è quella di mettere un grosso condensatore a ridosso delle linee di alimentazione del PIC (1000 uF o più) e di utilizzare il convertitore ADC o il comparatore per generare un interrupt non appena viene meno la tensione di alimentazione. Grazie al condensatore, avresti il tempo necessario per salvare lo stato dell'uscita non appena avviene l'interruzione.
Sicuramente ci saranno altre soluzioni che al momento ignoro.

Saluti,
Cosimo
Ringraziano per il messaggio: openSUSE2014

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Cosimix
  • Avatar di Cosimix
  • Elite Member
  • Elite Member
Di più
4 Anni 7 Mesi fa #7 da openSUSE2014
Risposta da openSUSE2014 al topic pic12f675
lo so,ma a me serve memorizzare il led sulla eeprom se il led e acceso,se per caso manca la tensione per un po e poi torna,deve fare in modo che riparte con il led acceso.metti che siamo a tavola,e va via la luce,mi ritroverei con la luce spenta,perche ripartirebbe da spento.
nn riesco a scrivere sulla eeprom,come posso fare?
grazie ancora per la tua pazienza..
ti allego il file:
// PIC12F675 Configuration Bit Settings

// 'C' source line config statements

// CONFIG
#pragma config FOSC = INTRCIO // Oscillator Selection bits (INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-Up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = ON // GP3/MCLR pin function select (GP3/MCLR pin function is MCLR)
#pragma config BOREN = OFF // Brown-out Detect Enable bit (BOD enabled)
#pragma config CP = OFF // Code Protection bit (Program Memory code protection is disabled)
#pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)

// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

#include <xc.h>
#include <stdint.h>

#define led GP5 // GP5
#define relay GP2
#define puls GP1 // GP1
#define _XTAL_FREQ 8000000

int main(){

OPTION_REG = 0b11000000;
ANSEL = 0x00; // Set ports as digital I/O, not analog input
//ADCON0 = 0x00; // Shut off the A/D Converter
CMCON = 0x07; // Shut off the Comparator
TRISIO = 0b11011110; // GP3 input, rest all output
GPIO = 0x00; // Make all pins 0

for(;;){

if(puls == 0){

__delay_ms(10);

if(puls == 0){

led = ~led; // Toggle GP5 pin ( ~ )

}


while(puls == 0){

}
}
}
}

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • openSUSE2014
  • Avatar di openSUSE2014
  • Junior Member
  • Junior Member
Di più
4 Anni 6 Mesi fa #8 da openSUSE2014
Risposta da openSUSE2014 al topic pic12f675
sono 2 giorni che sbatto con questo codice e non ne vengo a capo...

helm me,please

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • openSUSE2014
  • Avatar di openSUSE2014
  • Junior Member
  • Junior Member
Di più
4 Anni 6 Mesi fa #9 da Cosimix
Risposta da Cosimix al topic pic12f675

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
  • Avatar di Cosimix
  • Elite Member
  • Elite Member
Di più
4 Anni 6 Mesi fa #10 da openSUSE2014
Risposta da openSUSE2014 al topic pic12f675
Grazie Cosimo, ci proverò e ti faccio sapere.
Grazie per la pazienza che mi dedichi, sono alle prime armi con i picmicro e devo dire la verità nn mi trovo male.
Solo che con arduino ho notato che è tt pronto, basta scrivere e va.
Spero che con il vostro aiuto, continuerò su questa strada.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • openSUSE2014
  • Avatar di openSUSE2014
  • Junior Member
  • Junior Member
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login