Oldal: 1 / 3
Kérdések, vélemények a 2010-es pályaművekről.
Elküldve: 2010. december 13. hétfő, 18:11
Szerző: kapu48
Heló Gerry!
Mivel érdekelt a választott téma és meg is szólítottál a megjegyzésben!
Kicsit bele kotyognák a programodba utólag, ha nem haragszol meg érte?
Mert rettenetesen bántó a sok felesleges GOTO benne!
Ha itt Bit változókat használnál:
Akkor itt egyszerűbben kezelhetnéd:
Kód: Egész kijelölése
Do
Getrc5(address , Command)
If Address = 5 Then
Command = Command And &B01111111
Select Case Command
Case 1 : Toggle Ir1 'Toggles(inverts) the state of an output pin or bit
Case 2 : Toggle Ir2
Case 3 : Toggle Ir3
Case 4 : Toggle Ir4
Case 5 : Toggle Ir5
Case 6 : Toggle Ir6
Case 7 : Toggle Ir7
Case 8 : Toggle Ir8
Case 9 : Toggle Ir9
End Select
Goto Mainprog 'Ha feldolgozta vagy eltérő értéket kap
End If 'Visszaugrás a főprogramba
Loop
És ezek elhagyhatók lennének:
Kód: Egész kijelölése
Nulla1:
Ir1 = Ir1 + 1
If Ir1 > 1 Then Ir1 = 0
Goto Mainprog
Nulla2:
.....
Gondold át menyivel 1*űbb szebb lenne így a programod!
Különben a HW része nagyon jó a projektnek gratulálok!
(Ha az egész progi megírását nem is vállaltam, ennyit szívesen segítek bármikor!)
Elküldve: 2010. december 13. hétfő, 19:32
Szerző: kapu48
Szegő János 8 csatornás logikai analizátor.
Megszakításokban nem figyeled a tömbindexek túllépését!
Ami adatmemória felülírást okozhat!
Kód: Egész kijelölése
' Megszakítás szubrutin
'-------------------------------------------------------------------------------
Tmr0_interrupt:
Timer0 = Tmr0_start ' kezdeti érték beállítása
Toggle Sampling_led ' státusz LED villogtatása
Sampling_data(address) = Sampling_port ' vett minta eltárolása az SRAM-ba
Address = Address + 1 ' memória cím megnövelése
Return
'-------------------------------------------------------------------------------
Tmr1_interrupt:
Timer1 = Tmr1_start ' kezdeti érték beállítása
Toggle Sampling_led ' státusz LED villogtatása
Sampling_data(address) = Sampling_port ' vett minta eltárolása az SRAM-ba
Address = Address + 1 ' memória cím megnövelése
Return
Vajon mi van mikor Addres több lesz, mint 1024?
És „Address = 0” kezdőérték adás is hibás!
Dim Sampling_data(1024) As Byte ' 1024 elemű tömböt definiál, index 1-1024
(Elnézést nem kötözködni akarok csak érdekesnek találtam a témát!)
A Rádiós projected viszont Klassz!!!
Elküldve: 2010. december 13. hétfő, 21:02
Szerző: szegoj
Valóban nem a megszakító rutin végzi az ellenőrzést, hanem a Measure rutin, ami a címhatárnál leállítja a további megszakítást.
Ha már megszólíttattam, el kell mondani, hogy az analizátor felbontása most a kisérleti példány 5 mikroszekundumával szemben már csak 0,5us (assembly nyelvű rutin beépítésével) , és nincs is megszakítás, azt majd a külső triggerelésre tartogatom.
Re: Kérdések, vélemények a 2010-es pályaművekről.
Elküldve: 2010. december 14. kedd, 7:05
Szerző: gerry
kapu48 írta:Heló Gerry!
Mivel érdekelt a választott téma és meg is szólítottál a megjegyzésben!
Kicsit bele kotyognák a programodba utólag, ha nem haragszol meg érte?
Mert rettenetesen bántó a sok felesleges GOTO benne!
Ha itt Bit változókat használnál:
Akkor itt egyszerűbben kezelhetnéd:
Kód: Egész kijelölése
Do
Getrc5(address , Command)
Command = Command And &B01111111
If Address = 5 Then
Select Case Command
Case 1 : Toggle Ir1 'Toggles(inverts) the state of an output pin or bit
Case 2 : Toggle Ir2
Case 3 : Toggle Ir3
Case 4 : Toggle Ir4
Case 5 : Toggle Ir5
Case 6 : Toggle Ir6
Case 7 : Toggle Ir7
Case 8 : Toggle Ir8
Case 9 : Toggle Ir9
End Select
Goto Mainprog 'Ha feldolgozta vagy eltérő értéket kap
End If 'Visszaugrás a főprogramba
Loop
És ezek elhagyhatók lennének:
Kód: Egész kijelölése
Nulla1:
Ir1 = Ir1 + 1
If Ir1 > 1 Then Ir1 = 0
Goto Mainprog
Nulla2:
.....
Gondold át menyivel 1*űbb szebb lenne így a programod!
Különben a HW része nagyon jó a projektnek gratulálok!
(Ha az egész progi megírását nem is vállaltam, ennyit szívesen segítek bármikor!)
Kedves Kapu48!
Az én programozási tudásom ennyit tett lehetővé!
A Select Case elágazással csak nemrég kezdtem el foglalkozni, belátom egyszerűbb ,mint a goto utasítás. A további fejlesztéseknél igyekszem egyszerűsíteni a programot. Köszönöm építő jellegű hozzászólásod.
Köszönöm!
Elküldve: 2010. december 14. kedd, 11:59
Szerző: kapu48
Hali Szegoj!
Ha már a gyorsítást te megoldottad!
Én a grafikus kijelzésen gondolkoztam.
Jobban mutatna, ha számok helyett görbék ábrázolnák az értékeket.
A Bascom Dosos termináljában még megmaradt néhány grafikus jel.
Ezek közül használhatók:
Chr: 32, 191, 192, 196, 217, 218
1 Bit folyam kirajzoláshoz 2 sort kel kiírni.
Sajnos a Szóköz karakter (Chr(32)) szélessége nem egyezik a többiével!
Ezért a függőleges vonalak kicsit elcsúsznak. Erre kellene még valami megoldás.
Az alábbi próbálkozás 2 Bit-et szimulálna:
1: H, L, L, H
2: L, L, H, H, L
Kód: Egész kijelölése
$regfile = "m128def.dat"
'$crystal = 16000000
'$regfile = "m644def.dat"
'$crystal = 14740000
$crystal = 11059200
$baud = 9600
$hwstack = 32
$swstack = 10
$framesize = 40
Dim I As Byte
Print "START"
Print "Bits"
Print 1 ; " " ; Chr(196) ; Chr(191) ; Chr(32) ; Chr(32) ; Chr(32) ; Chr(32) ; Chr(218) ; Chr(196) ; Chr(196)
Print " " ; Chr(32) ; Chr(32) ; Chr(192) ; Chr(196) ; Chr(196) ; Chr(217) ; Chr(32) ; Chr(32) ; Chr(32)
Print
Print 2 ; " " ; Chr(32) ; Chr(32) ; Chr(32) ; Chr(32) ; Chr(32) ; Chr(218) ; Chr(196) ; Chr(196) ; Chr(191) ; Chr(32)
Print " " ; Chr(196) ; Chr(196) ; Chr(217) ; Chr(32) ; Chr(32) ; Chr(32) ; Chr(32) ; Chr(32) ; Chr(192) ; Chr(196)
'( Karakter sor Print
For I = 0 To 255
Print I ; " " ; Chr(i)
Next i
')
End
Terminálban lefuttatva megnézhető a kép!
Szerintem érdemes lenne megírni hozzá a rajzoló rutint!?
Elküldve: 2010. december 14. kedd, 12:24
Szerző: szegoj
Köszi, Kapu48!
Nagyon klassz, amit írtál.
Ki is fogom próbálni.
Most éppen grafikus LCD kijelzővel próbálkozom. de a tovább fejlesztésnek másik útja a Terminálos megjelenítés lehet, (eredetileg ezt csak teszt célra gondoltam használni, a kísérletezés idejére).
Elküldve: 2010. december 14. kedd, 12:57
Szerző: kapu48
A Grafikus LCD is jó megoldás lenne!
Ott megszerkeszthetőek a karakterek és (1 sor / 1 Pin (bit)) elég lenne.
Csak a 8 sorhoz egymás alá jó nagy LCD kellene!
+ a 8sor 1*re SCROL-ozást is meg kell oldani.
Elküldve: 2010. december 14. kedd, 21:52
Szerző: kapu48
Itt az előző ötlet 80%-os kidolgozása!
Mára eddig jutottam!
Véleményt kérek jó lenne? Vagy felejtős?
Kód: Egész kijelölése
'AnalizatorG2.bas
'8 csatornás logikai görbe rajzolása.
'Rajzolás Bascom Terminálra. FONT: Courier 9 Félkövér (Ez fontos! Mással összetörnek az oszlopok!)
'Nem találtam egyforma széles karakter készletet! Ezért az oszlopok még néhol nem pontosak!
'Még benne vannak az oszloprendezéshez teszt, változok!
' Szerző: Kapu48
$regfile = "m128def.dat"
'$crystal = 16000000
'$regfile = "m644def.dat"
'$crystal = 14740000
$crystal = 11059200
$baud = 9600
$hwstack = 32
$swstack = 10
$framesize = 40
' PORTA - LSA mintavételi port (GPIO-A)
' Port konfiguráció
'-------------------------------------------------------------------------------
'MAX enyi bits fér 1 sorba!
Const Adatbytes = 52 'Mivel még hozzá adódnak véletlen számú szóközök.
' Szubrutin deklarációk
'-------------------------------------------------------------------------------
Declare Sub Hhg 'Folyamatos H szint
Declare Sub Llg 'Folyamatos L szint
Declare Sub Hlg 'H > L átmenet
Declare Sub Lhg 'L > H átmenet
Sampling_port Alias Pina
Dim Sampling_data(adatbytes) As Byte ' tömböt definiál
Dim Address As Word ' mért adatok címregisztere
Dim S0b As Byte , S1b As Byte , S2b As Byte 'String hossz számolás teszt célból
Dim S0t As Byte , S0tt As Byte 'Szóköz korrekcióhoz
Dim S0 As String * 255 'A Ki rajzolandó Stringek
Dim S1 As String * 255
Dim S2 As String * 255
Dim Is1w As Word , Is1wn As Word , Is2b As Byte 'Indexeléshez
Dim Rep As Byte 'Ismétlődés számolása
'
'Random értékek. Mivel még nincs HW a méréshez!
Dim ___rseed As Word : ___rseed = 234 'RND - Véletlen
'Teszthez RND adat feltöltés
For Is1w = 1 To Adatbytes
Sampling_data(is1w) = Rnd(256) 'Véletlen 0 - 255
Next Is1w
Print "START!"
'0 - 7 Bites = 8 sor
For Is2b = 0 To 7
Rep = 1
If Sampling_data(1).is2b = 0 Then 'Ha az első Bit L
S0 = "L "
S1 = " "
S2 = Chr(196)
S0b = 2 : S1b = 2 : S2b = 1
Else 'Ha H
S0 = "H "
S1 = Chr(196)
S2 = " "
S0b = 2 : S1b = 1 : S2b = 2
End If
S0t = 0
S0tt = 0
For Is1w = 2 To Adatbytes
S0t = S0t + 1
S0tt = S0tt + 1
If S0tt = 12 Then 'S0 String korrekció
S0t = 0
S0tt = 4
Else
If S0t = 4 Then
S0t = 0
S0 = S0 + " "
S0b = S0b + 1
End If
End If
Is1wn = Is1w - 1
If Sampling_data(is1wn).is2b = Sampling_data(is1w).is2b Then 'Ha folyamatos a vonal
Rep = Rep + 1 'Ismétlés számolása Szóköz korrekcióhoz
If Sampling_data(is1w).is2b = 0 Then 'Ha L > L szint
Gosub Llg
Else 'Ha H > H szint
Gosub Hhg
End If
Else 'Ha átmenet van
Rep = 0 'Ismétlés számolása = 0
If Sampling_data(is1w).is2b = 0 Then 'Ha H > L szint átmenet
Gosub Hlg
Else 'Ha L > H szint átmenet
Gosub Lhg
End If
End If
Next Is1w
'Kész 1 sor
Print "Bit: " ; Is2b
Print S0 ; S0b 'Teszt célból még ki írjuk a string hosszát
Print S1 ; S1b
Print S2 ; S2b
Next Is2b
'
End 'end program
' Grafikus Szubrutinok
'-------------------------------------------------------------------------------
Sub Hhg 'Folyamatos H szint
S0b = S0b + 1 : S1b = S1b + 1 : S2b = S2b + 2
S0 = S0 + "H"
S1 = S1 + Chr(196)
S2 = S2 + " "
If Rep = 3 Then 'Szóköz korrekció
S2 = S2 + " "
S2b = S2b + 1
End If
If Rep = 5 Then 'Szóköz korrekció
S2 = S2 + " "
S2b = S2b + 1
End If
End Sub
Sub Llg 'Folyamatos L szint
S0b = S0b + 1 : S1b = S1b + 2 : S2b = S2b + 1
S0 = S0 + "L"
S1 = S1 + " "
If Rep = 3 Then 'Szóköz korrekció
S1 = S1 + " "
S1b = S1b + 1
End If
If Rep = 5 Then 'Szóköz korrekció
S1 = S1 + " "
S1b = S1b + 1
End If
S2 = S2 + Chr(196)
End Sub
Sub Hlg 'H > L átmenet
S0b = S0b + 1 : S1b = S1b + 1 : S2b = S2b + 1
S0 = S0 + "L"
S1 = S1 + Chr(191) '
S2 = S2 + Chr(192) '
End Sub
Sub Lhg 'L > H átmenet
S0b = S0b + 1 : S1b = S1b + 1 : S2b = S2b + 1
S0 = S0 + "H"
S1 = S1 + Chr(218) '
S2 = S2 + Chr(217) '
End Sub
Elküldve: 2010. december 14. kedd, 22:28
Szerző: szegoj
Kapu48!
Nagyon klassz dolgot írtál.
Sajnos nem volt időm kipróbálni.
Remélem a hétvégén komolyan tudok a Terminállal foglalkozni. Minden esetre nagyon köszönöm, hogy ilyen lelkes vagy.
Elküldve: 2010. december 19. vasárnap, 21:18
Szerző: kapu48
Az előző próbálkozással nem sikerült összehozni a sorokat szépen egymás alá!
Itt a javítás!
Szegoj „8 csatornás logikai analizátor.”
2010-es pályaművéhez grafikus kijelző kiegészítés.
Kód: Egész kijelölése
'AnalizatorG5.bas
'8 csatornás logikai görbe rajzolása. Választható kijelzéssi módokban.
'Rajzolás Bascom Terminálra. FONT: Courier 9 Félkövér (Ez fontos! Mással összetörnek az oszlopok!)
'Nem találtam egyforma széles karakter készletet! Ezért az oszlopok néhol nem pontosak!
'
' Szerző: Kapu48
$regfile = "m128def.dat"
'$crystal = 16000000
'$regfile = "m644def.dat"
'$crystal = 14740000
$crystal = 11059200
$baud = 9600
$hwstack = 32
$swstack = 10
$framesize = 40
'-------------------------------------------------------------------------------
'MAX enyi bits fér 1 sorba. Grafikus kijelzésnél!
Const Graphbytes = 28 'Mivel még hozzá adódnak véletlen számú szóközök.
'MAX enyi bits fér 1 sorba. Numerikus kijelzésnél!
Const Numbytes = 37
'Beolvasott adatok hossza.
Const Adatbytes = 1036
'1036/28 'Grafikus oldalak száma
Const Kepek = Adatbytes / Graphbytes ' (adatbytes / Graphbytes)
'1036/36
Const Numer = Adatbytes / Numbytes 'Numerikus Oldalak száma
'Karakterek Pixel szélessége
Const Nump = 10 '0-1 Pixel szélessége
Const Alp = 10 ' "_" Pixel szélessége
Const Ip = 4 ' "I" Pixel szélessége
Const Spcp = 4 ' " " Pixel szélessége
Const Spcp2 = Spcp * 2 ' " " Pixel szélessége
Const Spcp3 = Spcp * 3 ' " " Pixel szélessége
' Szubrutin deklarációk
'-------------------------------------------------------------------------------
Declare Sub Hhg 'Folyamatos H szint
Declare Sub Llg 'Folyamatos L szint
Declare Sub Hlg 'H > L átmenet
Declare Sub Lhg 'L > H átmenet
Declare Sub Pixelek
'Mérő bemenet
' PORTA - LSA mintavételi port (GPIO-A)
Sampling_port Alias Pina ' Port konfiguráció (Alapból bemenet!)
Dim Sampling_data(adatbytes) As Byte ' 1036 elemű tömböt definiál, index 1-1036
Dim Address As Word ' mért adatok címregisztere
Dim S0pixw As Word , S1pixw As Word , S2pixw As Word 'String Pixel hossz számolás
Dim Pixkb As Byte 'Stringek közti Pixel különbség
Dim S0 As String * 200 'A Ki rajzolandó Stringek
Dim S1 As String * 200
Dim S2 As String * 200
Dim Var As String * 1 , Kar As String * 1 , Bitn As String * 1 'InKey változók
Dim Termk As Word , Termk2 As Word , Termv As Word , Oldal As Byte 'Ki rajzolás kezdete - Vége
Dim Is1w As Word , Is1wn As Word , Is2b As Byte , Is3b As Byte 'Indexeléshez
Dim Repll As Byte , Rephh As Byte , Replh As Byte , Rephl As Byte 'Ismétlődés számolása
'Random értékek. Mivel még nincs HW a méréshez!
Dim ___rseed As Word 'RND - Véletlen
___rseed = Rnd(1024)
'Teszthez RND adat feltöltés
For Is1w = 1 To Adatbytes
Sampling_data(is1w) = Rnd(256) 'Véletlen 0 - 255
Next Is1w
Print "START!"
Do
'Kijelzési módok választás (beállítása)
Print " Kel | grafika ( I ) ? " ; 'Grafikus vagy Numerikus kijelzés
Var = Waitkey()
Print
If Var = "i" Or Var = "I" Then
Print " Kel Karakter sor ( I ) ? " ; 'Grafikus + Numerikus kijelzés
Kar = Waitkey()
Print
Print " Kel Bit szam ( I ) ? " ; 'Lesz Bit szám kijelzés is.
Bitn = Waitkey()
Print
Termk = 1
Termv = Graphbytes
Oldal = 1
'1 Terminál oldalelőkészítése
For Is3b = 1 To Kepek
Print
Print Oldal ; ". Oldal. Kezdet: " ; Termk ; " Vege: " ; Termv
'0 - 7 Bits = 8 sor
For Is2b = 0 To 7
Repll = 0 'Ismétlődések = 0
Rephh = 0
Replh = 0
Rephl = 0
'Az 1-es Byte(x Bit)
If Sampling_data(termk).is2b = 0 Then 'Ha az első Byte(x Bit) = L
S0 = "0"
S1 = " "
S2 = "_"
S0pixw = Nump 'Pixel szélesség számolás
S1pixw = Spcp2
S2pixw = Alp
Replh = 1
Repll = 1
Else 'Ha az első Byte(x Bit) = H
S0 = "1"
S1 = "_"
S2 = " "
S0pixw = Nump 'Pixel szélesség számolás
S1pixw = Alp
S2pixw = Spcp2
Rephh = 1
Rephl = 1
End If
Termk2 = Termk + 1
'1 Byte előkészítése.
For Is1w = Termk2 To Termv 'Következő Bytes
Is1wn = Is1w - 1
If Sampling_data(is1wn).is2b = Sampling_data(is1w).is2b Then 'Ha folyamatos a vonal
If Sampling_data(is1w).is2b = 0 Then 'Ha L > L szint
Repll = Repll + 1
Gosub Llg
Else 'Ha H > H szint
Rephh = Rephh + 1
Gosub Hhg
End If
Else 'Ha átmenet van
If Sampling_data(is1w).is2b = 0 Then 'Ha H > L szint átmenet
Rephl = Rephl + 1
Repll = 1
Rephh = 0
Gosub Hlg
Else 'Ha L > H szint átmenet
Replh = Replh + 1
Rephh = 1
Repll = 0
Gosub Lhg
End If
End If
Next Is1w
'Kész 1 sor
If Bitn = "i" Or Bitn = "I" Then Print "Bit: " ; Is2b
Print S1
Print S2
If Kar = "i" Or Kar = "I" Then Print S0
Next Is2b
'Kész 1 oldal
Print "Vege = (V), Uj Meres = (M), Tovabb ? " ;
Var = Waitkey()
Print
If Var = "m" Or Var = "M" Then Exit For
If Var = "v" Or Var = "V" Then Exit For
Termk = Termk + Graphbytes
Termv = Termv + Graphbytes
Oldal = Oldal + 1
Next Is3b
'Kész a mérés kijelzése.
Else
'Numerikus kijelzés előkészítése.
Termk = 1
Termv = Numbytes
Oldal = 1
'Oldalak
For Is3b = 1 To Numer
Print
Print Oldal ; ". Oldal. Sor kezdet: " ; Termk ; ". - Sor vege: " ; Termv
'0 - 7 Bits = 8 sor
For Is2b = 0 To 7
S0 = ""
S1 = ""
S2 = ""
'1 Byte előkészítése.
For Is1w = Termk To Termv 'Következő Bytes
If Sampling_data(is1w).is2b = 0 Then
'Ha L szint
S0 = S0 + "0|"
Else
'Ha H szint
S0 = S0 + "1|"
End If
Next Is1w
'Kész 1 sor
Print "Bit" ; Is2b ; ": " ;
Print S0
Next Is2b
'Kész 1 oldal
Print "Vege = (V), Uj Meres = (M), Tovabb ? " ;
Var = Waitkey() 'Bármi más karakterre következő oldal.
Print
If Var = "m" Or Var = "M" Then Exit For '"M"-re Új mérés.
If Var = "v" Or Var = "V" Then Exit For '"V"-re kilép
'Következő oldal előkésszítése
Termk = Termk + Numbytes
Termv = Termv + Numbytes
Oldal = Oldal + 1
Next Is3b
'Kész a mérés kijelzése.
End If
' "V" -re kilép
Loop Until Var = "v" Or Var = "V"
Print
Print " *** END PROGRAM! *** "
End 'end program
' String fűző Szubrutinok
'-------------------------------------------------------------------------------
'( Karakterek:
Alp = 10 "_" Pixel szélessége
Nump = 10 "0","1" Pixel szélessége
Ip = 4 "I","." Pixel szélessége
Spcp = 4 " " Pixel szélessége
')
'Folyamatos H szint
Sub Hhg
'Pixel szélesség számolás
If Rephh > 5 Then
S2 = S2 + " "
S2pixw = S2pixw + Spcp
Rephh = 0
Repll = 0
Rephl = 0
Replh = 0
End If
S0 = S0 + " 1"
S1 = S1 + "._"
S2 = S2 + " "
S0pixw = S0pixw + Spcp
S0pixw = S0pixw + Nump
S1pixw = S1pixw + Ip
S1pixw = S1pixw + Alp
S2pixw = S2pixw + Spcp3
Gosub Pixelek
End Sub
'Folyamatos L szint
Sub Llg
'Pixel szélesség számolás
If Repll > 5 Then
S1 = S1 + " "
S1pixw = S1pixw + Spcp
Repll = 0
Rephh = 0
Rephl = 0
Replh = 0
End If
S0 = S0 + " 0"
S1 = S1 + " "
S2 = S2 + "._"
S0pixw = S0pixw + Spcp
S0pixw = S0pixw + Nump
S1pixw = S1pixw + Spcp3
S2pixw = S2pixw + Ip
S2pixw = S2pixw + Alp
Gosub Pixelek
End Sub
'H > L átmenet
Sub Hlg
'Pixel szélesség számolás
If Rephl > 5 Then
S1 = S1 + " "
S2 = S2 + " "
S1pixw = S1pixw + Spcp
S2pixw = S2pixw + Spcp
Rephh = 0
Repll = 0
Rephl = 0
Replh = 0
End If
S0 = S0 + " 0"
S1 = S1 + " " '
S2 = S2 + "I_" '
S0pixw = S0pixw + Spcp
S0pixw = S0pixw + Nump
S1pixw = S1pixw + Spcp3
S2pixw = S2pixw + Ip
S2pixw = S2pixw + Alp
Gosub Pixelek
End Sub
'L > H átmenet
Sub Lhg
'Pixel szélesség számolás
If Replh > 5 Then
S1 = S1 + " "
S2 = S2 + " "
S1pixw = S1pixw + Spcp
S2pixw = S2pixw + Spcp
Rephh = 0
Repll = 0
Replh = 0
Rephl = 0
End If
S0 = S0 + " 1"
S1 = S1 + " _" '
S2 = S2 + "I " '
S0pixw = S0pixw + Spcp
S0pixw = S0pixw + Nump
S1pixw = S1pixw + Spcp
S1pixw = S1pixw + Alp
S2pixw = S2pixw + Ip
S2pixw = S2pixw + Spcp2
Gosub Pixelek
End Sub
'S0 > (S1 vagy S2)? Sor hossz kiigazítás
Sub Pixelek
If S0pixw > S1pixw Then 'Kel S1 korrekció ?
Pixkb = S0pixw - S1pixw
If Pixkb > 12 Then
S1 = S1 + " "
S1pixw = S1pixw + Spcp
End If
End If
If S0pixw > S2pixw Then 'Kel S2 korrekció ?
Pixkb = S0pixw - S2pixw
If Pixkb > 12 Then
S2 = S2 + " "
S2pixw = S2pixw + Spcp
End If
End If
End Sub
Már régóta szerettem volna 1 ilyet építeni!
Elárulnád hol vetted hozzá a mérő csipeszeket?
Elküldve: 2010. december 20. hétfő, 8:12
Szerző: szegoj
Kapu48!
Köszönöm a programod.
Jómagam kicsit most "visszaléptem", grafikus kijelző helyett karakteres LCD-vel próbálkozom.
A jelenlegi kétsorossal még elég szegényes a kijelzés, a következő lépés 4 soros lesz.
A terv
Jelenlegi állapot
(Bocs a gyenge képminőségért)
A kijelzett adatok minden irányban léptethetők, soronként illetve karakterenként.
Csipeszeket a HESTRORE-nál lehet venni, 41 illetve 65mm-est.
Elküldve: 2010. december 20. hétfő, 11:22
Szerző: kapu48
Jól néz ki az LCD-n!
És megoldható 1 jel bemenet kirajzolása 1 sorban.
Nem kel kínlódni a keskenyebb szóköz karakterek illesztése miatt sem!
És hordozható marad a masina!
De nekem kellene 1*re a 8 jel kijelzés! Viszont a nagyméretű LCD drága.
És nem fontos a hordozhatóság. De kellene a bemeneteken optokapus leválasztás!
Szóval eltérő igényekhez is igazítható lesz a project.
Írtad, hogy megoldottad a gyorsabb beolvasást!
Majd elkérném, ha lehet!
Ne keljen időt eltöltenem vele!
Köszönöm a bemutatót!
Elküldve: 2010. december 20. hétfő, 11:58
Szerző: szegoj
A fél mikroszekundumos rutin, bemutatóba:
http://dl.dropbox.com/u/998596/1.HTML
Elküldve: 2010. december 20. hétfő, 12:58
Szerző: kapu48
Kösz! Ötletadónak jó!
Ez 16MHz-re van belőve?
Mondjuk az én tesztpanelom most csak 3.3V-os a rajtalevő SDRAM miatt.
És ezért csak $crystal = 11059200 tud menni! De ha megépítem az 5V és 16MHz-lesz.
A magasabb mérési sebesség miatt!
Közben kitaláltam, hogy kellene a „Measure” ménűbe + 1 külső trigger jel is választhatóan!
Az már a 9. bemenet lenne! (Megszakításban)
Elküldve: 2010. december 20. hétfő, 13:14
Szerző: szegoj
Igen, nálam 16MHz-en megy a mikrovezérlő (Mega32).
Az állapottárolás (ugrással - ciklusszervezés) együtt 6 gépi ciklus, kb. 380us, ennél gyorsabbra már nem lehet csinálni.
Innen a 0,5us-es méréshatár.
Szinkron mérési üzemmódnál a triggereléshez most az 1. csatorna jelét használom, jel célra így 7 bemenet marad. Az él is választható fel-, vagy lefutó.