Hello all, I solved this problem. Some how I managed to delete everything in the XC8 include files. I reinstalled XC8 and that fixed it. Dumb!! Now I have another problem. The code is running and most of it works correctly. This is about as simple as it gets. I am using a series of if and elseif statements to check for the setting of two input bits and then set four output bits. It is PortA and B and the input bits are 0 and 1. The two ports control two separate devices. If the setting is 0, 0 then output bits 2 and 5 are on and bits 3 and 4 are off. If the setting is 0, 1 then bit 2, 4, and 5 are off and bit 3 is on. If the setting is 1, 0 then bits 2, 3, and 5 are off and bit 4 is on. If the setting is 1, 1 then bits 2, 3, and 4 are off and bit 5 is on. That is the way it is supposed to work. So here are three tables showing what is supposed to happen and what is happening; Supposed to be! The way it is! Port A The way it is! Port B --------------------------------- ---------------------------------- ---------------------------------- | Input | Output | | Input | Output | | Input | Output | | Bits | Bits | | Bits | Bits | | Bits | Bits | |-----|-----|-----|-----|-----|-----| |-----|-----|-----|-----|-----|------| |-----|-----|-----|-----|-----|------| | 1 | 0 | 2 | 3 | 4 | 6 | 5 for B | 1 | 0 | 2 | 3 | 4 | 6 | | 1 | 0 | 2 | 3 | 4 | 5 | |-----|-----|-----|-----|-----|-----| |-----|-----|-----|-----|-----|------| |-----|-----|-----|-----|------|-----| | 0 | 0 | 1 | 0 | 0 | 1 | | 0 | 0 | 1 | 0 | 0 | 1 | OK | 0 | 0 | 1 | 0 | 0 | 1 | OK |-----|-----|-----|-----|-----|-----| |-----|-----|-----|-----|------|-----| |-----|-----|-----|-----|------|-----| | 0 | 1 | 0 | 1 | 0 | 0 | | 0 | 1 | 0 | 1 | 0 | 0 | OK | 0 | 1 | 1* | 0 | 0 | 1*| Bad* |-----|-----|-----|-----|-----|-----| |-----|-----|-----|-----|------|-----| |-----|-----|-----|-----|------|-----| | 1 | 0 | 0 | 0 | 1 | 0 | | 1 | 0 | 0 | 0 | 1* | 0 | OK* | 1 | 0 | 0 | 0 | 1 | 0 | OK |-----|-----|-----|-----|-----|-----| |-----|-----|-----|-----|------|-----| |-----|-----|-----|-----|------|-----| | 1 | 1 | 0 | 0 | 0 | 1 | | 1 | 1 | 0 | 0 | 0 | 1 | OK | 1 | 1 | 0 | 1 | 0 | 0 | Bad |-----|-----|-----|-----|-----|-----| |-----|-----|-----|-----|------|-----| |-----|-----|-----|-----|------|-----| As you can see there are problems. The stars mean that even though there is an ok or a bad this is only true at certain times. On PortA if both bits are low and you make bit 1 high the port responds correctly. If both bits are high and you make bit 0 low the output bit climbs from a few mVs to about 100mVs but it never goes to a high condition. On PortB if you have both bits low and you make bit0 high bits 2 and 4 stay high. If you have both bits high and you make bit 1 low then bit 2 goes low, bit 3 goes high. Also bits 3 and 4 go low. Here is the code: /* * File: Tortoise-Sema2.c * Author: Richard R. Pope * * Created on September 12, 2015, 7:28 AM */ #include #include #include // #pragma config statements should precede project file includes. // Use project enums instead of #define for ON and OFF. // CONFIG #pragma config FOSC =3D INTOSCIO // Oscillator Selection bits //(INTOSC oscillator: I/O function on //RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN) #pragma config WDTE =3D OFF // Watchdog Timer Enable bit (WDT disable= d) #pragma config PWRTE =3D OFF // Power-up Timer Enable bit (PWRT disabl= ed) #pragma config MCLRE =3D OFF // RA5/MCLR/VPP Pin Function Select bit //(RA5/MCLR/VPP pin function is digital input, MCLR internally //tied to VDD) #pragma config BOREN =3D OFF // Brown-out Detect Enable bit //(BOD disabled) #pragma config LVP =3D OFF // Low-Voltage Programming Enable bit //(RB4/PGM pin has digital I/O function, HV on MCLR must be used //for programming) #pragma config CPD =3D OFF // Data EE Memory Code Protection bit //(Data memory code protection off) #pragma config CP =3D OFF // Flash Program Memory Code Protection b= it //(Code protection off) /* * */ void main(void) { TRISA0 =3D 1; //RA0 as Input PIN TRISA1 =3D 1; //RA1 as Input PIN TRISA5 =3D 1; //RA5 as Input PIN TRISA7 =3D 1; //RA7 as Input PIN TRISB0 =3D 1; //RB0 as Input PIN TRISB1 =3D 1; //RB1 as Input PIN TRISB6 =3D 1; //RB6 as Input PIN TRISB7 =3D 1; //RB7 as Input PIN PORTA =3D 0; //Set port A outputs to off TRISA2 =3D 0; //RA2 as Output PIN TRISA3 =3D 0; //RA3 as Output PIN TRISA4 =3D 0; //RA4 as Output PIN TRISA6 =3D 0; //RA6 as Output PIN PORTB =3D 0; //Set port B outputs to off TRISB2 =3D 0; //RB2 as Output PIN TRISB3 =3D 0; //RB3 as Output PIN TRISB4 =3D 0; //RB4 as Output PIN TRISB5 =3D 0; //RB5 as Output PIN CMCON =3D 0x07; while(1) { //Set the First signal if (RA0 =3D=3D 0 && RA1 =3D=3D 0) { RA2 =3D 1; //LED1 IS off RA3 =3D 0; //No Grn1 aspect RA4 =3D 0; //No Yel1 aspect RA6 =3D 1; //The Red1 aspect is set } else if (RA0 =3D=3D 1 && RA1 =3D=3D 0) { RA2 =3D 0; //LED1 IS on RA3 =3D 1; //The Grn1 aspect is set RA4 =3D 0; //No Yel1 aspect RA6 =3D 0; //No Red1 aspect } else if (RA0 =3D=3D 0 && RA1 =3D=3D 1) { RA2 =3D 0; //LED1 IS on RA3 =3D 0; //No Grn1 aspect RA4 =3D 1; //The Yel1 aspect is set RA6 =3D 0; //No Red1 aspect } else if (RA0 =3D=3D 1 && RA1 =3D=3D 1) { RA2 =3D 0; //LED1 IS on RA3 =3D 0; //No Grn1 aspect RA4 =3D 0; //No Yel1 aspect RA6 =3D 1; //The Red1 aspect is set } //Set the second signal if (RB0 =3D=3D 0 && RB1 =3D=3D 0) { RB2 =3D 1; //LED1 IS off RB3 =3D 0; //No Grn2 aspect RB4 =3D 0; //No Yel2 aspect RB5 =3D 1; //The Red2 aspect is set } else if (RB0 =3D=3D 1 && RB2 =3D=3D 0) { RB2 =3D 0; //LED2 IS on RB3 =3D 1; //The Grn2 aspect is set RB4 =3D 0; //No Yel2 aspect RB5 =3D 0; //No Red2 aspect } else if (RB0 =3D=3D 0 && RB1 =3D=3D 1) { RB2 =3D 0; //LED2 IS on RB3 =3D 0; //No Grn2 aspect RB4 =3D 1; //The Yel2 aspect is set RB5 =3D 0; //No Red2 aspect } else if (RB0 =3D=3D 1 && RB1 =3D=3D 1) { RB2 =3D 0; //LED2 IS on RB3 =3D 0; //No Grn2 aspect RB4 =3D 0; //No Yel2 aspect RB5 =3D 1; //The Red2 aspect is set } } return; } Any thoughts and help would be great. Thanks, rich! On 9/12/2015 7:48 AM, Richard R. Pope wrote: > Hello all, > Well I was doing pretty good until I went looking for some includes > for my 628a program. Now I get error messages that the items like > TRISRA0, TrisRB0, and all of the other defined labels for the 628 can no > longer be found. I have tried starting a new project and I still get the > same error messages. I am using MPLAB X and the XC8 compiler. Could > someone please help me out with this? I have never had anything like > this happen to me before. I also shut the IDE down and tried to start a > new project with the same results. > Thanks, > -- Richard R. Pope President Reedsburg Area Model Railroad Club, RAMRC 1230 19th Street #5 Reedsburg, WI 53959 608-768-7448 mechanic_2@charter.net -- http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .