Bonjour,
Voila j'ai un soucis majeur pour mon projet, concernant l'interruption drain ouvert sur le RTC PCF8583.
Il active une interruption sur la patte RB2 du PIC 18F4550 sur front descendant.
Je n'ai aucun soucis pour l'utilisation "basique" (affichage de l'heure, initialisation des regitres heures) et je ne pense pas avoir de soucis non plus (mais il y en a surement un!!!) pour l'initialisation du Timer qui genere l'interruption.
voici mon code pour le timer
je programme sur un PIc 18F4550 I/P a 4MhzCode://*********fonction d'ecriture des commandes du timer********** void write_RTC(unsigned char adresse,unsigned char value) { SSPCON2bits.SEN=1; while((SSPCON2&0x1F)|(SSPSTATbits.R_W)); //adresse I2c SSPBUF=0xA0; while(SSPSTATbits.BF); while((SSPCON2&0x1F)|(SSPSTATbits.R_W)); while(SSPCON2bits.ACKSTAT); //adresse memoire SSPBUF=adresse; while(SSPSTATbits.BF); while((SSPCON2&0x1F)|(SSPSTATbits.R_W)); while(SSPCON2bits.ACKSTAT); //arret comptage SSPBUF=value; while(SSPSTATbits.BF); while((SSPCON2&0x1F)|(SSPSTATbits.R_W)); while(SSPCON2bits.ACKSTAT); //stop SSPCON2bits.PEN=1; Delay10TCYx(20); } //***************ordres au RTC pour Timer interruption write_RTC(0x00,0x80);//Arret du comptage write_RTC(0x08,0x42);//timer alarm 0x43 pour minute 0x42 pour seconde write_RTC(0x0F,0x05);//5 seconde write_RTC(0x07,0);//reset du timer write_RTC(0,0x04);//restart comptage et alarm on par bit 3 a 1. //***routine interruption sur RB2 du PIC if(INTCON3bits.INT2IF)//RB2 { PORTDbits.RD7=!PORTDbits.RD7;//indicateur fonctionnement write_RTC(0,0x04);write_RTC(0x07,0);//reset FLAG alarm et reset du Timer a 0; INTCON3bits.INT2IF=0;//RESET FLAG } //****initialisation du pic RB2 sur front descendant INTCONbits.GIE=1;//global interruption RCONbits.IPEN=1;//priority low active INTCON3bits.INT2IE=1;//INT2 external priority INTCON2bits.INTEDG2=0;//EXT INT2 interrupt 2 sur falling edge INTCON3bits.INT2IP=1;//INT2 high priority
je precise que les fonction I2C fonctionnent tres bien et que l'interruption sur RB2 fonctionne lorsque je remplace la sortie INT par un interrupteur a la masse.Donc c'est un probleme d'initialisation car le cablage lui est bon (open drain 10Kohm).
Auriez vous une idee sur la question?
Merci
-----