Ethernet picplc16b 16f887 problem

General discussion on mikroC PRO for PIC.
Post Reply
Author
Message
gluvce
Posts: 6
Joined: 22 Aug 2009 10:35
Location: Macedonia
Contact:

Ethernet picplc16b 16f887 problem

#1 Post by gluvce » 18 Jan 2010 22:48

I convert the code that work from mikroC to mikroC PRO but now PING program don't work.
Please help me.

Here is original mikroC code

Code: Select all

// duplex config flags
#define SPI_Ethernet_HALFDUPLEX     0
#define SPI_Ethernet_FULLDUPLEX     1
unsigned int    SPI_Ethernet_UserTCP(unsigned char *remoteHost, unsigned int remotePort,
                                 unsigned int localPort, unsigned int reqLength)
                {
                  return 0;
                }                                
unsigned int    SPI_Ethernet_UserUDP(unsigned char *remoteHost, unsigned int remotePort,
                                 unsigned int destPort, unsigned int reqLength)
                {
                  return 0;
                }
/***********************************
 * RAM variables
 */
unsigned char   myMacAddr[6] = {0x00, 0x14, 0xA5, 0x76, 0x19, 0x3f} ;   // set MAC address
unsigned char   myIpAddr[4] = {192, 168, 1, 60} ;                      // set IP address
/*
 * main entry
 */
void main()
  {
    ANSEL = 0x0C ;
    ANSELH = 0;
    Spi_Init();
    SPI_Ethernet_Init(&PORTE, 1, &PORTE, 0, myMacAddr, myIpAddr, SPI_Ethernet_FULLDUPLEX) ;

    while(1)                             // endless loop
            {
            SPI_Ethernet_doPacket() ;    // process incoming Ethernet packets
            }
}


And here is the converted mikroC PRO code:

Code: Select all

// duplex config flags
#define Spi_Ethernet_HALFDUPLEX     0  // half duplex
#define Spi_Ethernet_FULLDUPLEX     1  // full duplex
unsigned int    SPI_Ethernet_UserTCP(unsigned char *remoteHost, unsigned int remotePort, unsigned int localPort, unsigned int reqLength)
{
         return 0;
}
unsigned int    SPI_Ethernet_UserUDP(unsigned char *remoteHost, unsigned int remotePort, unsigned int destPort, unsigned int reqLength)
{
         return 0;
}
/***********************************
 * RAM variables
 */
unsigned char   myMacAddr[6] = {0x00, 0x14, 0xA5, 0x76, 0x19, 0x3f} ;   // my MAC address
unsigned char   myIpAddr[4]  = {192, 168, 1, 60} ;                     // my IP address
// mE ehternet NIC pinout
sfr sbit SPI_Ethernet_Rst at RE1_bit;
sfr sbit SPI_Ethernet_CS  at RE0_bit;
sfr sbit SPI_Ethernet_Rst_Direction at TRISE1_bit;
sfr sbit SPI_Ethernet_CS_Direction  at TRISE0_bit;

void main() {
     ANSEL = 0x0C ;
     ANSELH = 0;
     SPI1_Init();
     SPI_Ethernet_Init(myMacAddr, myIpAddr, Spi_Ethernet_FULLDUPLEX) ;
     while(1)                            // do forever
     {
      SPI_Ethernet_doPacket() ;   // process incoming Ethernet packets
     }
}
Where is the error in my code?
Aleksandar

User avatar
tihomir.losic
mikroElektronika team
Posts: 2138
Joined: 02 Dec 2009 14:16
Location: Serbia
Contact:

#2 Post by tihomir.losic » 02 Feb 2010 10:28

Hello Aleksandar,

first of all, please sorry for little delaying with answer.
Here is a code which might help you:

Code: Select all

// duplex config flags
#define Spi_Ethernet_HALFDUPLEX     0x00  // half duplex
#define SPI_Ethernet_FULLDUPLEX     0x01  // full duplex

/***********************************
 * RAM variables
 */
unsigned char   myMacAddr[6] = {0x00, 0x14, 0xA5, 0x76, 0x19, 0x3f} ;   // my MAC address
unsigned char   myIpAddr[4]  = {192, 168, 1, 60} ;                     // my IP address
// mE ehternet NIC pinout
sfr sbit SPI_Ethernet_Rst at RE1_bit;
sfr sbit SPI_Ethernet_CS  at RE0_bit;
sfr sbit SPI_Ethernet_Rst_Direction at TRISE1_bit;
sfr sbit SPI_Ethernet_CS_Direction  at TRISE0_bit;


unsigned int SPI_Ethernet_UserTCP(unsigned char *remoteHost, unsigned int remotePort, unsigned int localPort, unsigned int reqLength, char *canClose)
{
         return 0;
}
unsigned int SPI_Ethernet_UserUDP(unsigned char *remoteHost, unsigned int remotePort, unsigned int destPort, unsigned int reqLength)

{
         return 0;
}

void main() {
     ANSEL = 0x0C ;
     ANSELH = 0;
     SPI1_Init();
     SPI_Ethernet_Init(myMacAddr, myIpAddr, SPI_Ethernet_FULLDUPLEX);
     while(1){

      SPI_Ethernet_doPacket();
     }


}
Also, you need to check SPI_Ethernet and C_String libraries in mikroC PRO.

Best regards,

Losic Tihomir
mikroElektronika [Support team]

Post Reply

Return to “mikroC PRO for PIC General”