Ik heb een stuk code, alleen is er een array gemaakt die begint op 0. De serie die ik gebruik kan dat niet aan. Daar moet een array met 1 beginnen. Weet iemand een oplossing?
De hele code: http://www.mcselec.com/index.php?option=com_content&task=view&id=86&It…


$crystal = 11059200
$large
Config Lcd = 16 * 2 'configure lcd display
Cursor Off

'---- Software Uhr Variablen -----------------------------------------------------------------------------
Dim Shsek As Byte , Ssek As Byte , Smin As Byte , Sstd As Byte , Etag As Byte
Dim Stag As Byte , Swta As Byte , Smon As Byte , Sjah As Byte

'---- DCF77 Dekoder Variablen ----------------------------------------------------------------------------
Dim Pointer As Byte , Dmin As Byte , Dstd As Byte, 'DCF Variable
Dim Dtag As Byte , Dwta As Byte , Dmon As Byte , Djah As Byte

Dim Dcf(60) As Byte 'array für dcf empfangene impulse
Dim Dcfs As Byte 'Variable für zeit zwischen zwei impulse von DCF empfänger
Dim Dcfl As Byte 'Variable für DCF impuls dauer in 10ms schritten

Dim Dcferm As Byte  'Parity error minuten
Dim Dcfers As Byte 'Parity error stunden
Dim Dcferd As Byte 'Parity errordatum
Dim Dcferr As Byte  'Parity error Globall

Dim I As Byte 'diverse temporare variablen
Dim Temp1 As Byte
Dim Wert As Byte
Dim Par As Byte

'--- Speicher NUR FÜR Piepstone - ---------------------------------------------------------------------
Dim Pipsen As Byte 'merker für erzeugte pipston - eliminiert doppel ton bei DCF synchronisation

'--- Speicher NUR FÜR KW und Jahrestag BERECHNUNG --------------------------------------------------------
Dim Jtag As Integer , Schalt As Byte
Dim Temp2 As Integer
Dim Temp3 As Integer
Dim Temp4 As Byte
Dim Kw As Byte
'---------------------------------------------------------------------------------------------------------
'---------------------------------------------------------------------------------------------------------

Dcf(0) = 1 'Variablen initialisierung

Bij Dcf(0) = 1 ligt dus het probleem!

Of is er misschien iemand die deze code al aangepast heeft?
B.v.d.

Je zet toch gewoon alles één hoger voor alles wat met de Array te maken heeft (en pointer):

0 --> 60 wordt dan 1 --> 61

Dim Dcf(61) As Byte 'array für dcf empfangene impulse

Pcf(1) = 1 'Variablen initialisierung

Dcf(11) = 0
Dcf(21) = 1
Pointer = 1

Dcf(61) = 1

Else
Dcf(61) = 0

Gosub Dcfdecode 'DCF signall decodieren
Pointer = 1
End If
Pointer....

For I = 2 To 9 'scann Array für minuten
Pointer = I + 22
If Dcf(pointer) = 1 Then

Par = 0
For I = 2 To 8 'scann Array für Stunden
Pointer = I + 30
If Dcf(pointer) = 1 Then

Par = 0
For I = 2 To 24 'scann Array für Tag bis Jahr
Pointer = I + 37
If Dcf(pointer) = 1 Then

[Bericht gewijzigd door elektron_ op ]

Daar dacht ik ook al aan maar ook alle if lussen, then lussen enz moeten aangepast worden. Is dat zomaar te doen?

Op 9 september 2006 00:27:55 schreef Sandertje:
Daar dacht ik ook al aan maar ook alle if lussen, then lussen enz moeten aangepast worden. Is dat zomaar te doen?

Ik zie geen probleem.
Misschien moet je eens uitzoeken wat een Array is ?
De Array zelf heeft niets met het DCF signaal te maken.
Het is alleen de volgorde die telt.

[Bericht gewijzigd door elektron_ op ]

Op 9 september 2006 01:11:14 schreef elektron_:
[...]
Ik zie geen probleem.
Misschien moet je eens uitzoeken wat een Array is ?
De Array zelf heeft niets met het DCF signaal te maken.
Het is alleen de volgorde die telt.

Sorry voor de late reactie ;)
Als er in een Do/IF lus staat:


For F = 0 to 60 
Array(F) = ReadDcf
next F

Dan zal er uiteindelijk geprobeerd worden te kijken naar Array 0. die is er dan niet meer. Daar zit het hem in.

Wat er in dit stukje gebeurt is dat er 60 iets weggeschreven wordt; for lus.

Een array is een rij variabelen achter elkaar.
Dus er wordt hier 60 keer ReadDcf gelezen en weggeschreven in een variabele in een array.

edit:verkeerd gelezen. niet helemaal helder meer

[Bericht gewijzigd door WilToyo op ]

Eh... Kun je die compiler niet opgeven waar een array begint? Basic is een jaar of 20 terug; sommige varianten kennen dat.

Anders inderdaad je loops even aanpassen. Zo spannend is dat nou ook weer niet.

Op 23 september 2006 05:40:28 schreef Marco69:
Eh... Kun je die compiler niet opgeven waar een array begint? Basic is een jaar of 20 terug; sommige varianten kennen dat.

Anders inderdaad je loops even aanpassen. Zo spannend is dat nou ook weer niet.

in VB6: Option base 1 (of 0 )

loops:
for i = 0+1 to 60+1
bla bla
next i
of
for i = 0 to 60
bla bla (i + 1)
next i

Sorry voor de late reactie
Als er in een Do/IF lus staat:

code:
For F = 0 to 60
Array(F) = ReadDcf
next F

For F = 1 to 61
Array(F) = ReadDcf
next F

verzamel eerst de var namen die betrekking hebben op de 0 en 60, doe dan een search en replace...

weet sandertje wel wat een array is?