1wire ciklusban lekérdezve

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
gomy
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2009. október 21. szerda, 6:00

1wire ciklusban lekérdezve

Hozzászólás Szerző: gomy »

Szevasztok!

Elakadtam, egy kis (nekem nagy) segítség kéne. 10 db 18B20 sorszámát szeretném lekérdezni, gondoltam milyen jó lenne ezt FOR...NEXT-vel, mert az elgáns.
A változókat rendre fel is vettem:

Kód: Egész kijelölése

Dim Ds1(8) As Byte
Dim Ds2(8) As Byte
...
Dim Ds10(8) As Byte
Próbálkoztam 2 dimenziós tömbbel is:

Kód: Egész kijelölése

Dim Dst(10 , 8) As Byte
de a fordításnál hibát jelzett, ezért másfelé mentem.

Kód: Egész kijelölése

Darab = 1wirecount()
...
1wreset
Locate 1 , 1
Ds1(1) = 1wsearchfirst()
For I = 1 To 8
   Print Ds1(i);
   Lcd Ds1(i)
Next
Print
eddig jó (fent), de ez már nem (lent):

Kód: Egész kijelölése

Locate 2 , 1
For I = 2 To Darab
Ds(i , 1) = 1wsearchnext()
   For J = 1 To 8
      Print Ds(i , J);
      Lcd Ds(i , J)
   Next J
Next I
Print
Amíg csak 4 hőmérőm volt egyenként kérdeztem le. Így:

Kód: Egész kijelölése

ds3(1) = 1wsearchnext()
'Locate 3 , 1
'For I = 1 To 8
'   Print Ds3(i);
'   Lcd Ds3(i)
'Next
'Print
'Ds4(1) = 1wsearchnext()
'Locate 4 , 1
'For I = 1 To 8
'   Print Ds4(i);
'   Lcd Ds4(i)
'Next
'Print
Hogyan csináljam? 8O
Előre is köszönök minden segítséget!

:gomy
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

2 dimenziós tömb nincs....


De a(x,y) -> a(x*ymax+y) egydimenzióssá alakul.
Avatar
gomy
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2009. október 21. szerda, 6:00

Hozzászólás Szerző: gomy »

Akkor ezek fényében hogy tudom megoldani a problémámat?
Már elolvastam a tömbökről szóló értekezést, de a SZIKRA még várat magára. :?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Gyújtóbomba:

Kód: Egész kijelölése

dim ds(4*8) as byte
ds(1)1wsearchfirst()
for i = 2 to 4
 temp2=i*8
 temp2=temp2+1
 ds(temp2)=1wsearchnext()
next i
Válasz küldése