PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TCP/IP Stack



Duke of Doom
22.04.2007, 12:24
Hallo,
Ich hab ein Problem mit dem Microchip TCP/IP Stack:
Ich hab eine kleine Applikation, die ständig Daten über einen gewissen UDP -Port zu meinem Computer senden sollte(peer to peer). Das Problem ist, dass von den gesendeten Daten nichts am Computer ankommt. Ich weiß, dass es bei UDP vorkommt, dass Datenpakte nicht ankommen, aber ich glaube nicht, dass das der Grund für dieses Verhalten ist.
Manchmal kommt es dann aber vor, dass der computer alles empfängt was ich vom PIC aus sende.

Ich hoffe, es kann mir jemand helfen.
Ich verwende den PIC 18F97J60 mit dem TCP/IP Stack 3.75



#include <p18f97j60.h>
#pragma config FOSC=HSPLL
#pragma config DEBUG = OFF
#pragma config XINST = OFF
#pragma config STVR = OFF
#pragma config WDT = OFF
#pragma config CP0 = OFF
#pragma config MODE = MM
//#pragma config ETHLED = OFF

#pragma config FOSC2=ON, ETHLED=ON

#define THIS_IS_STACK_APPLICATION

#include <delays.h>
#include <math.h>

//Network
#include <string.h>
#include "..\Include\Compiler.h"
#include "..\Include\StackTsk.h"
#include "..\Include\Tick.h"
#include "..\Include\MAC.h"
#include "..\Include\Helpers.h"
#include "..\Include\Delay.h"
#include "..\Include\TCP.h"
/*#include "..\Include\UART.h"*/
#include "..\Include\MPFS.h"
/*#include "..\Include\LCDBlocking.h"*/
#include "..\Include\GenericTCPClient.h"
#include "..\Include\UDP.h"




APP_CONFIG AppConfig =
{
{10, 0, 0, 1},
{MY_DEFAULT_MAC_BYTE1, MY_DEFAULT_MAC_BYTE2, MY_DEFAULT_MAC_BYTE3, MY_DEFAULT_MAC_BYTE4, MY_DEFAULT_MAC_BYTE5, MY_DEFAULT_MAC_BYTE6},
{255, 0, 0, 0},
{MY_DEFAULT_GATE_BYTE1, MY_DEFAULT_GATE_BYTE2, MY_DEFAULT_GATE_BYTE3, MY_DEFAULT_GATE_BYTE4},
{MY_DEFAULT_DNS_BYTE1, MY_DEFAULT_DNS_BYTE2, MY_DEFAULT_DNS_BYTE3, MY_DEFAULT_DNS_BYTE4},
//{0b00000001}, // Flags, enable DHCP
};



BYTE myDHCPBindCount = 0;


#define TRUE 1


void main()
{
BYTE netData;

UDP_SOCKET socket;

//network node
NODE_INFO remoteNode;

IP_ADDR ip1 =
{
{10, 0, 0, 2},
};

remoteNode.IPAddr = ip1;

// Open the USART configured as 8N1, 9600 baud
Open1USART ( USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_LOW,
39);

// 9600 = FOSC/(64*(spbrg + 1))

StackInit();

UDPInit();

socket = UDPOpen(30704, &remoteNode, 30704);

if(socket == INVALID_UDP_SOCKET)
{
putrs1USART("Error: INVALID UDP SOCKET!\r\n");
}

while(1)
{
StackTask();

if(UDPIsPutReady(socket))
{
UDPPut('X');
UDPPut('x');
UDPFlush();
//putrs1USART("UDPFlush(); ..........\r\n");
}
}
}