Bonjour,
je tente d effectuer une communication SPI entre un PIC18F4580 et un potentiometre programmable MCP41050.
Cependant, la broche RC3 du PIC qui devrait delivrer une horloge pour la communication ne donne rien.
Avez vous une idee de la solution?
Merci
#include "p18f4580.h"
#include "adc.h"
#include <stdlib.h>
#include "delays.h"
#include <stdio.h>
#include "pwm.h"
#include "timers.h"
#include <spi.h>
#pragma config OSC = IRCIO67 //Oscillateur interne 8 MHz, RA6 et RA7 sont des ports normaux
#pragma config MCLRE = OFF //désactiver la pin de Reset
#pragma config LVP = OFF //Low Voltage Programming désactivé => RB5 I/O normale
#pragma config PBADEN = OFF //PORTB<4> and PORTB<1:0> Configured as Digital I/O Pins on Reset
#pragma config DEBUG = OFF //débug désactivé => RB6 et RB7 normal I/O
#pragma config FCMEN = OFF //Fail-Safe Clock désactivée
#pragma config IESO = OFF //Oscillator Switchover mode désactivé
#pragma config PWRT = OFF //Power-up Timer désactivé
#pragma config BOREN = OFF //Reset dû a une tension trop basse désactivé
#pragma config BORV = 2 //Brown-out Reset Voltage
#pragma config WDT = OFF //Watchdog désactivé
#pragma config WDTPS = 1024 //prédiviseur du watchdog
#pragma config LPT1OSC = OFF //Low-Power Timer 1 Oscillator Disable ==> high power
#pragma config XINST = OFF //Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
#pragma config BBSIZ = 1024 //1K words (2K bytes) Boot Block
#pragma config STVREN = OFF //pas de reset du à la pile
#define SPI_CS LATDbits.LATD2
void init_config(void)
{
SPI_CS = 1;
OSCCON = 0b01110011; // 8mhz
TRISD = 0x00; //Initialisation du port D en sortie
TRISDbits.TRISD2 = 0; // pin RD2 configurée en sortie
//PORTDbits.RD2 = 1;
TRISCbits.TRISC3 = 0; // pin RC3 configurée en sortie
TRISCbits.TRISC5 = 0; // pin RC5 configurée en sortie
TRISCbits.TRISC4 = 1; // pin RC4 configurée en sortie,inutilisée
Conversion_AN ();
OpenPWM1 (255); // PWM period =[(period ) + 1] x 4 x TOSC x TMR2 prescaler,
// PWM period = PWM Duty_Dycle max = 1023 TOSC avec TOSC = 125ns d'où period=255
OpenSPI(SPI_FOSC_16, MODE_11, SMPEND);
SPI_CS = 0;
WriteSPI( 0x11 );
writeSPI(0);
SPI_CS = 1;
}
void main (void)
{
init_config ();
while(1);
}
-----