compiler dont like it ;-)

Beta Testing discussion on mikroPascal PRO for 8051.
Post Reply
Author
Message
piort
Posts: 1379
Joined: 28 Dec 2005 16:42
Location: Laval,Québec,Canada,Earth... :-)
Contact:

compiler dont like it ;-)

#1 Post by piort » 21 Jul 2008 15:17

hi,
i have change the def file for S51 to that : ( compare with the original that come with the compiler... a lot of mistyping there ...lol)

Code: Select all

unit AT89S51;


var  R0 : char ;    absolute 0x00;   register;
var  R1 : char ;    absolute 0x01;   register;
var  R2 : char ;    absolute 0x02;   register;
var  R3 : char ;    absolute 0x03;   register;
var  R4 : char ;    absolute 0x04;   register;
var  R5 : char ;    absolute 0x05;   register;
var  R6 : char ;    absolute 0x06;   register;
var  R7 : char ;    absolute 0x07;   register;

//
// * individual bit access constats
   

// const char F0 = 0; // intentionally commented out
const F1 : byte = 1;
const F2 : byte = 2;
const F3 : byte = 3;
const F4 : byte = 4;
const F5 : byte = 5;
const F6 : byte = 6;
const F7 : byte = 7;

const B0 : byte = 0;
const B1 : byte = 1;
const B2 : byte = 2;
const B3 : byte = 3;
const B4 : byte = 4;
const B5 : byte = 5;
const B6 : byte = 6;
const B7 : byte = 7;

//------------------------------------------------
//Byte Registers
//------------------------------------------------ 
var P0     : byte;  absolute 0x80;   sfr;  // Port 0 //
var SP     : byte;  absolute 0x81;   sfr;  // Stack Pointer //
var DPL    : byte;  absolute 0x82;   sfr;  // Data Pointer Low Byte //
var DP0L   : byte;  absolute 0x82;   sfr;  // Alternate Definition //
var DPH    : byte;  absolute 0x83;   sfr;  // Data Pointer High Byte //
var DP0H   : byte;  absolute 0x83;   sfr;  // Alternate Definition //
var DP1L   : byte;  absolute 0x84;   sfr;  // Data Pointer 1 Low Byte , different to AT89C52 //
var DP1H   : byte;  absolute 0x85;   sfr;  // Data Pointer 1 High Byte , different to AT89C52 //  
var PCON   : byte;  absolute 0x87;   sfr;  // Power Control Register // 
var TCON   : byte;  absolute 0x88;   sfr;  // Timer Control Register //
var TMOD   : byte;  absolute 0x89;   sfr;  // Timer Mode Control Register //
var TL0    : byte;  absolute 0x8A;   sfr;  // Timer 0 Low Byte //
var TL1    : byte;  absolute 0x8B;   sfr;  // Timer 1 Low Byte //
var TH0    : byte;  absolute 0x8C;   sfr;  // Timer 0 High Byte //
var TH1    : byte;  absolute 0x8D;   sfr;  // Timer 1 High Byte //
var AUXR   : byte;  absolute 0x8E;   sfr;  // Auxiliary Register, DISALE // 

var P1     : byte;  absolute 0x90;   sfr;  // Port 1 //  
var SCON   : byte;  absolute 0x98;   sfr;  // Serial Port Control //
var SBUF   : byte;  absolute 0x99;   sfr;  // Serial Port Buffer //  

var P2     : byte;  absolute 0xA0;   sfr;  // Port 2 //
var AUXR1  : byte;  absolute 0xA2;   sfr;  // Auxiliary Register, DISALE  
var WDTRST : byte;  absolute 0xA6;   sfr;  // WDT Reset Register // 
var IE     : byte;  absolute 0xA8;   sfr;  // Interrupt Enable Register 0 // 

var P3     : byte;  absolute 0xB0;   sfr;  // Port 3 //  
var IP     : byte;  absolute 0xB8;   sfr;  // Interrupt Priority Register //  

var PSW    : byte;  absolute 0xD0;   sfr;  // Program Status Word //  

var ACC    : byte;  absolute 0xE0;   sfr;  // Accumulator //

var B      : byte;  absolute 0xF0;   sfr;  // B Register // 

//------------------------------------------------
//P0 (0x80) Bit Registers
//------------------------------------------------ 
var P0_0: sbit at P0.B0;
var P0_1: sbit at P0.B1;
var P0_2: sbit at P0.B2;
var P0_3: sbit at P0.B3;
var P0_4: sbit at P0.B4;
var P0_5: sbit at P0.B5;
var P0_6: sbit at P0.B6;
var P0_7: sbit at P0.B7;

//------------------------------------------------
//TCON (0x88) Bit Registers
//------------------------------------------------ 
var IT0: sbit at TCON.B0;       // Interrupt 0 Type Control Bit //
var IE0: sbit at TCON.B1;       // Interrupt 0 Edge Flag //
var IT1: sbit at TCON.B2;       // Interrupt 1 Type Control Bit //
var IE1: sbit at TCON.B3;       // Interrupt 1 Edge Flag //
var TR0: sbit at TCON.B4;       // Timer 0 Run Control Bit //
var TF0: sbit at TCON.B5;       // Timer 0 Overflow Flag //
var TR1: sbit at TCON.B6;       // Timer 1 Run Control Bit //
var TF1: sbit at TCON.B7;       // Timer 1 Overflow Flag //

//------------------------------------------------
//P1 (0x90) Bit Registers
//------------------------------------------------ 
var P1_0: sbit at P1.B0;
var P1_1: sbit at P1.B1;
var P1_2: sbit at P1.B2;
var P1_3: sbit at P1.B3;
var P1_4: sbit at P1.B4;
var P1_5: sbit at P1.B5;
var P1_6: sbit at P1.B6;
var P1_7: sbit at P1.B7;

// only for programming purposes, MCU does not actually have SPI module
var MOSI: sbit at P1.B5;       // SPI: MOSI - Master data output, slave data input //
var MISO: sbit at P1.B6;       // SPI: MISO - Master data input, slave data output //
var SCK:  sbit at P1.B7;       // SPI: SCK - Master clock output, slave clock input // 

//------------------------------------------------
//SCON (0x98) Bit Registers
//------------------------------------------------ 
var RI:   sbit at SCON.B0;       // Receive Interrupt Flag //
var TI:   sbit at SCON.B1;       // Transmit Interrupt Flag //
var RB8:  sbit at SCON.B2;       // 9th data bit received //
var TB8:  sbit at SCON.B3;       // 9th data bit to be transmitted in modes 2 & 3 // 
var REN:   sbit at SCON.B4;      // Receive Enable  
var SM2:  sbit at SCON.B5;       // Serial Port Mode Bit 2 //
var SM1:  sbit at SCON.B6;       // Serial Port Mode Bit 1 //
var SM0:  sbit at SCON.B7;       // Serial Port Mode Bit 0 // 

//------------------------------------------------
//P2 (0xA0) Bit Registers
//------------------------------------------------ 
var P2_0:  sbit at P2.B0;
var P2_1:  sbit at P2.B1;
var P2_2:  sbit at P2.B2;
var P2_3:  sbit at P2.B3;
var P2_4:  sbit at P2.B4;
var P2_5:  sbit at P2.B5;
var P2_6:  sbit at P2.B6;
var P2_7:  sbit at P2.B7;

//------------------------------------------------
//IE (0xA8) Bit Registers
//------------------------------------------------ 
var EX0:  sbit   at IE.B0;       // 1=Enable External interrupt 0  
var ET0:  sbit   at IE.B1;       // 1=Enable Timer 0 interrupt  
var EX1:  sbit   at IE.B2;       // 1=Enable External interrupt 1  
var ET1:  sbit   at IE.B3;       // 1=Enable Timer 1 interrupt  
var ES:   sbit   at IE.B4;       // 1=Enable Serial port interrupt  
var ET2:  sbit   at IE.B5;       // 1=Enable Timer 2 interrupt  

var EA:   sbit   at IE.B7;       // 0=Disable all interrupts  

//------------------------------------------------
//P3 (0xB0) Bit Registers (Mnemonics & Ports)
//------------------------------------------------ 
var P3_0:  sbit  at P3.B0;
var P3_1:  sbit  at P3.B1;
var P3_2:  sbit  at P3.B2;
var P3_3:  sbit  at P3.B3;
var P3_4:  sbit  at P3.B4;
var P3_5:  sbit  at P3.B5;
var P3_6:  sbit  at P3.B6;
var P3_7:  sbit  at P3.B7;

var RXD:  sbit   at P3.B0;       // Serial data input //
var TXD:  sbit   at P3.B1;       // Serial data output //
var INT0: sbit   at P3.B2;       // External interrupt 0 //
var INT1: sbit   at P3.B3;       // External interrupt 1 //
var T0:   sbit   at P3.B4;       // Timer 0 external input //
var T1:   sbit   at P3.B5;       // Timer 1 external input //
var WR:   sbit   at P3.B6;       // External data memory write strobe //
var RD:   sbit   at P3.B7;       // External data memory read strobe //  

//------------------------------------------------
//IP (0xB8) Bit Registers
//------------------------------------------------ 
var PX0:  sbit  at IP.B0;       // External Interrupt 0 Priority Bit //
var PT0:  sbit  at IP.B1;       // Timer 0 Interrupt Priority Bit //
var PX1:  sbit  at IP.B2;       // External Interrupt 1 Priority Bit //
var PT1:  sbit  at IP.B3;       // Timer 1 Interrupt Priority Bit //
var PS:   sbit  at IP.B4;       // Serial Port Interrupt Priority Bit //
var PT2:  sbit  at IP.B5;       // Timer 2 Interrupt Priority Bit //  


//------------------------------------------------
//PSW (0xD0) Bit Registers
//------------------------------------------------ 
var P:   sbit    at PSW.B0;       // Parity Flag //
var FL:  sbit    at PSW.B1;       // User Flag //
var OV:  sbit    at PSW.B2;       // Overflow Flag //
var RS0: sbit    at PSW.B3;       // Register Bank Select Bit 0 //
var RS1: sbit    at PSW.B4;       // Register Bank Select Bit 1 //
var F0:  sbit    at PSW.B5;       // User Flag 0 //
var AC:  sbit    at PSW.B6;       // Auxiliary Carry Flag //
var CY:  sbit    at PSW.B7;       // Carry Flag //

//------------------------------------------------
//PCON (0x87) Bit Values
//------------------------------------------------ 
const IDL  : byte = 0;    // Idle Mode Bit: 1=Active  
const STOP : byte=  1;    // Stop Mode Bit: 1=Active  
const PD  : byte = 1;     // Alternate definition  
const GF0 : byte = 2;    // General Purpose Flag 0  
const GF1 : byte = 3;    // General Purpose Flag 1  

const SMOD : byte = 7;   // Double Baud Rate Bit for use with Timer 1  

//------------------------------------------------
//TMOD (0x89) Bit Values
//------------------------------------------------ 
const T0_M0 : byte = 0;    // Timer 0 Mode Bit 0 //
const T0_M1 : byte = 1;    // Timer 0 Mode Bit 1 //
const T0_CT : byte = 2;    // Timer 0 Counter/Timer Select: 0=Timer, 1=Counter //
const T0_GATE : byte = 3;  // Timer 0 Gate Control //

const  T1_M0 : byte = 4;   // Timer 1 Mode Bit 0 //
const  T1_M1 : byte = 5;   // Timer 1 Mode Bit 1 //
const  T1_CT : byte = 6;   // Timer 1 Counter/Timer Select: 0=Timer, 1=Counter //
const  T1_GATE : byte= 7;  // Timer 1 Gate Control //

const  T1_MASK : byte= 0xF0;   // Timer 0 Mask //
const  T0_MASK : byte= 0x0F;   // Timer 1 Mask //

//------------------------------------------------
//AUXR (0x8E) Bit Values
//------------------------------------------------ 
const  DISALE : byte          = 0;   // ALE management//

const  DISRTO  : byte = 3;   // Disable/Enable Reset out  
const  WDIDLE  : byte = 4;   // Disable/Enable WDT in IDLE mode  

//------------------------------------------------
//AUXR1 (0xA2) Bit Values
//------------------------------------------------ 
const  DPS : byte   = 0;    // Data Pointer Register Select  

//------------------------------------------------
//Interrupt Vectors:
//Interrupt Address = (Number * 8) + 3
//------------------------------------------------ 
const  IE0_VECTOR : byte = 0;  // 0x03 External Interrupt 0 //
const  TF0_VECTOR : byte = 1;  // 0x0B Timer 0 //
const  IE1_VECTOR : byte = 2;  // 0x13 External Interrupt 1 //
const  TF1_VECTOR : byte = 3;  // 0x1B Timer 1 //
const  SIO_VECTOR : byte = 4;  // 0x23 Serial port //  

implementation
end.
when i compile the keypad exemple.. i receve that:
0 1 mP8051.exe -DBG -MSF -N"C:\Program Files (x86)\Mikroelektronika\mikroPascal 8051\Examples\Keypad 4x4\Keypad4x4.mpproj" -SP"C:\Program Files (x86)\Mikroelektronika\mikroPascal 8051\defs\" -SP"C:\Program Files (x86)\Mikroelektronika\mikroPascal 8051\uses\" -SP"C:\Program Files (x86)\Mikroelektronika\mikroPascal 8051\Examples\Keypad 4x4\" "System.mcl" "Math.mcl" "Math_Double.mcl" "Delays.mcl" "__Lib_Conv.mcl" "__Lib_Keypad4x4.mcl" "__Lib_Lcd.mcl" "__Lib_LcdConsts.mcl"
107 1016 Warning: Source size (5) does not match destination size (15) Keypad4x4.mpas
After this error, i have to close the software and reopen to be able to build again with another mcu. Just change the mcu dont eneble the build choice...

im in way to correct all def file... do you want i send you a copy of them ?

piort
Posts: 1379
Joined: 28 Dec 2005 16:42
Location: Laval,Québec,Canada,Earth... :-)
Contact:

#2 Post by piort » 21 Jul 2008 15:26

hi,
the compiler really dont like it :-) event if i change exemple, the use of this def file cause a software crash... i dunno why for the moment but still working on it ) i have begin to read the datasheet... long long reading )))

User avatar
marko.ziv
mikroElektronika team
Posts: 530
Joined: 06 Dec 2007 10:11
Contact:

#3 Post by marko.ziv » 22 Jul 2008 10:59

Noted. Thanks.
Maybe it would be best to work with AT89S8253 for now, and we will look into this issue with S51.
Thanks again

Regards

piort
Posts: 1379
Joined: 28 Dec 2005 16:42
Location: Laval,Québec,Canada,Earth... :-)
Contact:

#4 Post by piort » 01 Sep 2008 19:50

hi,
still prob with S51 ... exemple button give this error :

Code: Select all

0 1 mP8051.exe -DBG -MSF -ES -O11111014 -fo10 -N"C:\Program Files (x86)\Mikroelektronika\mikroPascal 8051\Examples\Button\Button.mpproj" -SP"C:\Program Files (x86)\Mikroelektronika\mikroPascal 8051\defs\" -SP"C:\Program Files (x86)\Mikroelektronika\mikroPascal 8051\uses\" -SP"C:\Program Files (x86)\Mikroelektronika\mikroPascal 8051\Examples\Button\" -SP"C:\Program Files (x86)\Mikroelektronika\mikroPascal 8051\Examples\Lcd\" "System.mcl" "Math.mcl" "Math_Double.mcl" "Delays.mcl" "__Lib_Button.mcl" "__Lib_Sound.mcl"  
0 137 All files Compiled in 0 ms  
0 429 not enough RAM for call satck Button.mpas
0 102 Finished (with errors): 01 sept. 2008, 14:48:48 Button.mpproj

piort
Posts: 1379
Joined: 28 Dec 2005 16:42
Location: Laval,Québec,Canada,Earth... :-)
Contact:

#5 Post by piort » 02 Sep 2008 02:04

hi, i think i find something about the S51, no ram are define for the idata
Image

User avatar
marko.ziv
mikroElektronika team
Posts: 530
Joined: 06 Dec 2007 10:11
Contact:

#6 Post by marko.ziv » 04 Sep 2008 15:26

Noted, we will look into this.

Thanks

Post Reply

Return to “mikroPascal PRO for 8051 Beta Testing”