Phyres
20.01.2012, 00:25
Hallo allerseits!
Ich versuche im zu zeit ein ein digitales Poti(MCP41100) mittels eines p18f87j11 über SPI anzusteuern jedoch bisher erfolglos.
Hier mein Code( Compiler: CC18 ):
#include <p18f87j11.h>
#pragma config XINST = OFF
void main (void)
{
TRISC = 0b00000000;
TRISB = 0b00000000;
TRISG = 0b00000000;
SSPCON1 = 0b00110001;
SSPCON2 = 0x00;
SSPSTAT = 0b00000000;
SSPADD = 0x00;
PIR1bits.SSP1IF = 0; //Reset flag
PORTBbits.RB1=1; //set port CS high
SSP1BUF = 0b00010000; //send commandbits
while(!PIR1bits.SSP1IF ==1); //wait for trans
PIR1bits.SSP1IF = 0; //Reset flag
SSP1BUF = 0b11111111; //send value
while(!PIR1bits.SSP1IF ==1); //wait for trans
PIR1bits.SSP1IF = 0; //Reset flag
PORTBbits.RB1=0; //set port CS low
//Signal-LED for Code-end
while(1)
{
delay();
PORTGbits.RG1=1; // light on
delay();
PORTGbits.RG1=0; // light off
}
}
Der Code läuft bis zum ende durch(bleibt nicht an den "while(!PIR1bits.SSP1IF ==1);" hängen) jedoch tut sich an den Ausgängen des Potis nichts.
Hat jemand eine Idee woran es liegen könnte?
Ich versuche im zu zeit ein ein digitales Poti(MCP41100) mittels eines p18f87j11 über SPI anzusteuern jedoch bisher erfolglos.
Hier mein Code( Compiler: CC18 ):
#include <p18f87j11.h>
#pragma config XINST = OFF
void main (void)
{
TRISC = 0b00000000;
TRISB = 0b00000000;
TRISG = 0b00000000;
SSPCON1 = 0b00110001;
SSPCON2 = 0x00;
SSPSTAT = 0b00000000;
SSPADD = 0x00;
PIR1bits.SSP1IF = 0; //Reset flag
PORTBbits.RB1=1; //set port CS high
SSP1BUF = 0b00010000; //send commandbits
while(!PIR1bits.SSP1IF ==1); //wait for trans
PIR1bits.SSP1IF = 0; //Reset flag
SSP1BUF = 0b11111111; //send value
while(!PIR1bits.SSP1IF ==1); //wait for trans
PIR1bits.SSP1IF = 0; //Reset flag
PORTBbits.RB1=0; //set port CS low
//Signal-LED for Code-end
while(1)
{
delay();
PORTGbits.RG1=1; // light on
delay();
PORTGbits.RG1=0; // light off
}
}
Der Code läuft bis zum ende durch(bleibt nicht an den "while(!PIR1bits.SSP1IF ==1);" hängen) jedoch tut sich an den Ausgängen des Potis nichts.
Hat jemand eine Idee woran es liegen könnte?