После Atmel SAM7 и AVR перешел на С8051F120, и всё :-) пропало, в проекте подключен LED диcплей на портах P5, P6.Все попытки просто шевелить ногами для контроля LED проходят на УРА , как только делаю это в программе инициализации дисплея с портами непонятно что творится, появляютя левые сигналы, самостоятельно процессор что-то сам делает по всем ногам порта ;-).
Вопрос может это проблема переключения страниц SFR? По идее, смена страницы должна осуществлятся автоматически, при обращение к регистрам портов.
Думаю что -то неправильно со мной поэтому сильно не пинайте. Даташит прочитан, но боюсь, я ещё не до конца понимаю как всё работает в комплексе.
Исходный код , если кому будет интересно.
//OLED PINS
sbit OLED_CS = P5^0;
sbit OLED_RESET = P5^1;
sbit OLED_DC = P5^2;
sbit OLED_WR = P5^3;
sbit OLED_RD = P5^4;
sbit OLED_DATA0 = P5^5;
sbit OLED_DATA1 = P5^6;
sbit OLED_DATA2 = P5^7;
sbit OLED_DATA3 = P6^0;
sbit OLED_DATA4 = P6^1;
sbit OLED_DATA5 = P6^2;
sbit OLED_DATA6 = P6^3;
sbit OLED_DATA7 = P6^4;
#define OLED_CS_HIGH OLED_CS = 1; //OLED_CS = 1;
#define OLED_CS_LOW OLED_CS = 0;
#define OLED_DC_HIGH OLED_DC = 1;
#define OLED_DC_LOW OLED_DC = 0;
#define OLED_WR_HIGH OLED_WR = 1;
#define OLED_WR_LOW OLED_WR = 0;
#define OLED_DATA7_ON OLED_DATA7 = 1;
#define OLED_DATA7_OFF OLED_DATA7 = 0;
//----------------------------------------------------------------------
//
// Name: OLED_Set_Value
// Description:
//
//----------------------------------------------------------------------
void OLED_Set_Value(unsigned char value)
{
// The OLED's data control lines are connected to:
// DataBus (LCD): 7 6 5 4 3 2 1 0
// PORTOUT (Micro): P6.4 P6.3 P6.2 P6.1 P6.0 P5.7 P5.6 P5.5
P6 = (P6&0xE0)|(value>>3);
P5 = (P5&0x1F)|(value<<4);
}
//----------------------------------------------------------------------
//
// Name: OLED_WriteCommand
// Description:
//
//----------------------------------------------------------------------
void OLED_WriteCommand(unsigned char command )
{
OLED_DC_LOW;
OLED_CS_LOW;
Delayms(5);
OLED_Set_Value(command);
Delayms(5);
OLED_WR_LOW;
Delay(1);
OLED_WR_HIGH;
Delay(1);
OLED_CS = 1;
Delay(5);
}