Sida 1 av 1

registrera en hel funktion i Mikrobasic

Postat: 16 januari 2005, 16:13:52
av Murre
Kan man registrera en hel If funktion så man bara kallar den typ "sw1" i en loop. Istället för att skriva in hela if formeln på flera ställen i loopen?

Postat: 16 januari 2005, 16:20:40
av $tiff
Du lägger if-satsen i en subrutin och sen kallar du på subrutinen (gosub) när du vill utföra if-testet.

Postat: 16 januari 2005, 16:30:20
av Murre
Ungefär hur ser en sådan ut?

Postat: 16 januari 2005, 16:47:32
av $tiff
Har du ensa kollat i manualen innan du ställer dina frågor?
http://www.mikroe.com/pdf/mikrobasic/mi ... manual.pdf
s.52

Postat: 16 januari 2005, 17:07:16
av Murre
Ursäckta mig då. Men jag hade missat det annars har jag kollat. vill ju inte besvära någon i onödan.

Postat: 16 januari 2005, 17:39:51
av matseng
Man lär sig oftast mer, bättre och mer bestående om man har läst, funderat och provat _innan_ man frågar....

Postat: 16 januari 2005, 17:52:44
av Murre
Jo men till och börja med handlade det om ifall get gick. sedan handlade det om hur. givet vis har jag kollat manualen och testat. Men det funkar fortfarande inte.

Postat: 16 januari 2005, 18:01:58
av matseng
Ett tips som får oss på "gladare" humör och samtidigt gör det lättare för oss att hjälpa dig är att du klistrar in ett minialt med fortfarande komplett exempel av det du provat. Fler än 20-30 rader är för långt, de flesta nybörjarproblem borde kunna reduceras ner till max 10 rader kod. På så sätt kan vi lättare peka på vad felet är.

Tala samtidigt om vad du _förväntar_ dig för utresultat och vad det är som _verkligen_ händer när du provar att köra programmet.

Postat: 16 januari 2005, 18:30:08
av Murre
sub procedure sw1 ' Här blir det fel
If PortA.0 = 1 Then
goto effect1
else return
End If

end sub

Här e den. tanken är att jag bara ska lägga in sw1 i en loop istället för hela if formeln så om jag trycker på någon knapp ska loopen avbrytas och en annan ska på börgas. Vill du ha mer av koden så bara säg till.

Postat: 16 januari 2005, 18:40:10
av $tiff

Kod: Markera allt

main:
...
gosub check_btn
...
goto main

check_btn:
if porta.0 = 1 then
  goto effect1
endif

return
end
Såhär kanske? Jag har inte provat kompilera den.