Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Globale Variablen - komisches Verhalten Kategorie: Programmierung Basic (von Jürgen - 30.12.2013 1:50)
Als Antwort auf Re: Globale Variablen - komisches Verhalten von Jürgen - 30.12.2013 0:09

> > Hallo Zusammen,
> >
> > nachdem ich mich jetzt in die Sache AVR32 gestürzt habe und alles soweit echt super läuft ,
> > hänge ich jetzt an einer Sache, die ich nicht verstehe.
> >
> > Mein Programm - Auszug
> >
> >
> > /*******************************************************************************
> > Testprogramm zum Testaufbau
> > *******************************************************************************/
> >
> > ' Only for the C-Control PRO AVR32
> > #ifdef AVR32
> >
> > #thread 0, 0, 10    ' main thread with task change every 10 * 10ms = 100ms
> > #thread 1, 128, 10  ' thread 1 with 128 Byte RAM & task change 10 * 10ms = 100ms
> >
> >
> >
> > #define TUERSCHALTER 1
> > #define ENDSCHALTERZU 2
> > #define ENDSCHALTERAUF 4
> >
> >
> >
> > ' 500 byte received buffer and 200 byte ring buffer
> > Dim buf(ETH_BUF(500,0)), rbuf(200) As Byte
> >
> > ' Five Webserver variables
> > Dim webmem(WEB_BUF(5)) As Byte
> >
> >
> >
> >
> >
> >  '####### Variablen für den Ein / AUSgabe Betrieb #####################
> >  'Daten die eingelesen werden
> > Dim somedata(2) As Byte
> >
> >  'Variable für den Schreibwert - Lesemodus
> >  Dim data(1) As Byte
> >
> >  'Fortlaufender Zähler
> >  Dim i As Integer
> >
> >  'Variable für die Ausgabe
> >  Dim e(1) As Byte
> >
> >  'Variable für den Schreib / Lese status
> >  Dim status As Byte
> >
> >  ' Einlesewert
> >  Dim f As Integer
> >
> >
> >  Dim xyz As Integer
> >
> >
> >
> >
> > Sub main()
> >
> >     '####### Variablen für den Ethernetbetrieb ###########################
> >      Dim ip As ULong
> >      Dim str(100) As Char
> >      Dim info(5), plen As Word
> >
> >
> >      ' I2C-Bus config to 100kHz speed
> >      I2C_SetSpeed(I2C_100kHz)
> >
> >      .......
> >

> >
> > Wenn ich die Zeile
> > Dim xyz As Integer
> > eintippe und kompliliere kommt keine Fehlermeldung
> > Ich lade das Programm also in den AVR32 und starte es.
> > Leider funktioniert dann meine Ethernetschnittstelle nicht mehr.
> > Also der AVR32 nimmt keine Befehle über die Ethernetschnittstelle mehr in empfang.
> >
> > Lasse ich die Zeile weg, läuft das Programm einwandfrei.
> > Es spielt auch keine Rolle, welchen Variablenname ich wähle oder
> > welchen Datentype. Sobald ich nur eine weitere Variable als Gloabel
> > definiere dann streikt das Programm.
> >
> > Eigentlich hab ich alles ausgeschlossen, was als Fehler von meiner Seite aus
> > in Frage kommt. Könnte es irgendwie zu �berlappungen im Speicher kommen?
> >
> >
> > Für jeden Tipp dankbar!
> >
> > Grü�e
> > Jürgen
>
> jetzt hab ich mal mit Debuggen versucht dem Problem auf die Spur zu kommen.
>
> In meinem Programm, so wie im ersten Post folgt
>
>
> ETH_SetConnBuf(buf, 300, 0)
> ETH_ListenUDP(50000)
>

>
> Bei dieser Zeile hängt sich die IDE auf.
> -> Keine Rückmeldung
> erst nachdem im auf dem AVR die Reset Taste drücke
> kommt die IDE wieder zurück.
>
> Ã?brigens, lokale Variablen kann ich weitere definieren - ohne Probleme


Ich gebe nicht auf!

Jetzt hab ich alles gelöscht. �brig sind ca. 10 Zeilen Code.
Ich gehe ja immer erst davon aus das ich ein Fehler gemacht habe, aber hier
wei� ich absolut nicht was ich da falsch gemacht haben könnte.


/*******************************************************************************
Testprogramm zum Testaufbau
*******************************************************************************/

' Only for the C-Control PRO AVR32
#ifdef AVR32

Dim tester2 As Integer

' 500 byte received buffer and 200 byte ring buffer
Dim buf(ETH_BUF(500,0)), rbuf(200) As Byte


Sub main()

     ETH_SetConnBuf(buf, 500, 0)
End Sub

#else
#error "Only C-Control PRO AVR32-Bit"
#endif


' EOF



Definiere ich den Buffer für die Ethernetschnittstelle lokal geht es.

Hä ?!?!?!


�brigens ist mir aufgefallen wenn ich ein Projekt kompiliere und es übertrage...
das erste mal funktioniert es
tausche ich im oben genannten Programm nur den Datentype und kompliere nochmal, dann wird
es nicht übertragen da es angeblich schon übertragen wurde.


    Antwort schreiben


Antworten: