/
Forside
/
Teknologi
/
Udvikling
/
VB/Basic
/
Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn
*
Kodeord
*
Husk mig
Brugerservice
Kom godt i gang
Bliv medlem
Seneste indlæg
Find en bruger
Stil et spørgsmål
Skriv et tip
Fortæl en ven
Pointsystemet
Kontakt Kandu.dk
Emnevisning
Kategorier
Alfabetisk
Karriere
Interesser
Teknologi
Reklame
Top 10 brugere
VB/Basic
#
Navn
Point
1
berpox
2425
2
pete
1435
3
CADmageren
1251
4
gibson
1230
5
Phylock
887
6
gandalf
836
7
AntonV
790
8
strarup
750
9
Benjamin...
700
10
tom.kise
610
Håber på et par retnignslinier til hvordan~
Fra :
Ingelsen
Dato :
27-12-05 11:22
Jeg har bygget et program der kan optage en "opgave" Programmet kører en
løkke der på skriver i en database hvornår knap 1 - 5 blev trykket ned...
Eksempel:
Tid ->
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 181 19 20 ..........
Knap Nr ned på tidspunktet ->
......2........1...............5..............4.............1...........2...........
Dette skal bruges til at optage hvad en step motor skal gentage.. Og alt det
virker fint...
Nu er problemet jeg skal kode gentagelsen.
Den har 5 positioner den skal køre imellem..
Jeg har kodet hvordan den starter med at køre til den ene ende og derefter
kører frem til første position
(så man ved hvor den er)
Jeg kender også antallet af step mellem de forskellige positionér. Vi kan
bare sige der er 5 step imellem hver.
Derfra variablerne :
Pos1 = 0
Pos2 = 5
Pos3 = 10
Pos4 = 15
Pos5 = 20
Det jeg nu efter den lange sikkert uforståelige forklaring håbede på at få
hjælp til er:
Når jeg afspiller "optagelsen" løber tiden og på de givende tidspunkter for
den afvide hvor den skal køre hen
Men hvordan koder jeg det nemmest??
Altså når en timer kører og en variabel =2 derefter = 3 derefter = 1 osv.
for jeg den til at køre fra 2 til 3 til 1 osv...
Forstår i hvad jeg mener??
Her vil jeg lige beskrive hvad er skal til for at flytte motoren et step.
Et Step fra 1 mod 5: (Retningen)
timer1.enabled
interval= 50 (hastigheden)
writeStepDigital 3
writeStepDigital 1
writeStepDigital 3
writeStepDigital 1
'Hver gang timeren har løbet det igennem har motoren kørt et step.
--------------------------------------------------
Et step fra 5 mod 1 (Retningen)
timer2.enabled
interval= 50 (hastigheden)
writeStepDigital 2
writeStepDigital 0
writeStepDigital 2
writeStepDigital 0
'Hver gang timeren har løbet det igennem har motoren kørt et step.
Steven Nybo Andersen (
30-12-2005
)
Kommentar
Fra :
Steven Nybo Andersen
Dato :
30-12-05 08:39
ti 27 dec 2005 11:21:46a satte Ingelsen sig på en taburet og skrev
følgende på et stykke vådt franskbrød:
> Forstår i hvad jeg mener??
Hmm har lige et par spørgsmål til det...
1) Er det formatet af databasen du vil have hjælp med?
det så ju ud til at du udmærket vidste hvad der skal sendes til
controlleren
2) hvilken database bruger du
Steven
Ingelsen (
30-12-2005
)
Kommentar
Fra :
Ingelsen
Dato :
30-12-05 10:10
"Steven Nybo Andersen" <ingen@mail.tak> skrev i en meddelelse
news:43b4e415$0$47085$edfadb0f@dread15.news.tele.dk...
> ti 27 dec 2005 11:21:46a satte Ingelsen sig på en taburet og skrev
> følgende på et stykke vådt franskbrød:
>
>
>> Forstår i hvad jeg mener??
>
> Hmm har lige et par spørgsmål til det...
>
> 1) Er det formatet af databasen du vil have hjælp med?
> det så ju ud til at du udmærket vidste hvad der skal sendes til
> controlleren
Jeg ved godt hvad der kal sendes til controlleren, men det er mere hvordan
jeg koder det nemt uden 12000 linier..
Med det mener jeg, mellen hver stop er der vel ca. 1500 Step
(1500x writeStepDigital 3, writeStepDigital 1, writeStepDigital 3,
writeStepDigital 1)
Jeg havde tænkt mig på en eller anden måde at kode det ing i 4 subs, så man
har følgende 4 valgmuligheder:
xx = antal step
De 4 sub navne:
StepLeftSlow
StepLeftFast
StepRightSlow
StepRightFast
Hvor man så bare skulle kunne kalde dem med eksempel: StepLeftFast xx (Kører
xx Steps hurtigt mod Venstre)
Hastigheden er bestemp af intervalet i timeren
og et step kodes ved:
writeStepDigital 3
writeStepDigital 1
writeStepDigital 3
writeStepDigital 1
>
> 2) hvilken database bruger du
Jeg bruger Access 7.0
Hilsen Jan
Steven Nybo Andersen (
31-12-2005
)
Kommentar
Fra :
Steven Nybo Andersen
Dato :
31-12-05 02:58
fr 30 dec 2005 10:10:17a satte Ingelsen sig på en taburet og skrev
følgende på et stykke vådt franskbrød:
> Jeg havde tænkt mig på en eller anden måde at kode det ing i 4 subs,
> så man har følgende 4 valgmuligheder:
>
> xx = antal step
>
> De 4 sub navne:
>
> StepLeftSlow
> StepLeftFast
> StepRightSlow
> StepRightFast
Hvis du mener at de ikke skal kunne returnere evt. fejlkoder fra
controlleren lyder sub som en fin idé. Læg alle 4 subs i et kodemodul og
gør dem public så kan du bruge dem i hele koden uanset hvor du er.
Hvis derimod at programmet skal kunne modtage data tibage fra
controlleren (hvilket nok ville være smartest hvis controlleren
understøtter det) skal du bruge functions. Du gør det samme med functions
for at have dem tilgængelig i hele programmet.
Så kan du nøjes med at have et mainloop eller et timerloop der så hele
tiden chekker databasen. I forbindelse med databasen kan du jo vælge at
lave det sådan at der er et felt der fortæller hvornår den næste hændelse
skal ske istedet for at fylde ddatabasen op med tomme felter altså
TIME EVENT ARGS
===========================================
0 Forwardstep 10
50 FullStop 0
100 FOrwardstep 60
og så have en pointer der tæller opad indtil den når en værdi i det
timefeld den står ved ligfe nu i databasen. Herefter sker følgende.
1) Programmet udfører EVENT med argumnterne der står i ARGS
2) når enden er nået på instruktionen bliver databasen sat et step videre
hvorefter at programmet fortsætter.
Det vil holde databasen i en fornuftig størrelse. Hvis du har behov for
flere instruktioner samtidig kan du evt istedet bruge en SQL-sætning der
filtrerer på TIME-feltet. Så kan du have flere events som du så kan
udføre på een gang uden at fylde databasen unødigt.
Det er mine forslag til hvordan du rent praktisk kan gøre det.
Godt nytår
Steven
Søg
Alle emner
Teknologi
Udvikling
VB/Basic
Indstillinger
Spørgsmål
Tips
Usenet
Reklame
Statistik
Spørgsmål :
177579
Tips :
31968
Nyheder :
719565
Indlæg :
6409075
Brugere :
218888
Månedens bedste
Årets bedste
Sidste års bedste
Copyright © 2000-2024 kandu.dk. Alle rettigheder forbeholdes.