[BASIC] C-Control ontvang probleem

Pagina: 1
Acties:

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 13-09 20:13

LauPro

Prof Mierenneuke®

Topicstarter
Ik heb een C-Control (http://www.c-control.de) en die moet je programmeren in de BASIC-language. Nu heb ik een probleem dat de C-Control (ik noem hem even cc) nogal traag reageert op mijn toetsaanslagen in Hyperterminal.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
'© Laurens broek 2002
#begin

define lamp1 port[1]
define lamp2 port[2]
define lamp3 port[3]
define lamp4 port[4]
define lamp5 port[5]
define lamp6 port[6]
define lamp7 port[7]
define lamp8 port[8]

define status port[15]

define i word
define rd word

baud R9600

'gosub startup

'pause 20

gosub print_menu

#loop

IF RXD THEN get rd else goto loop
'if rd = 0 then 
'gosub print_menu
if rd = 49 then gosub lamp1_on
if rd = 50 then gosub lamp1_off

rd = 0
goto loop

#doewat

pause 50

gosub print_menu

return

#lamp1_on
lamp1=on
print " Lamp 1 = ON "
pause 50
gosub print_menu
return

#lamp1_off
lamp1=off
print " Lamp 1 = OFF "
pause 50
gosub print_menu
return

#print_menu

'print " .. Bezig met het laden van het hoofdmenu .. "
'print ""
'pause 10
'print "Gereed! Bezig met inloggen..."
'pause 10
for i = 1 to 15 '23 - 8
    print ""
next i

Print "==================="
Print "===  Hoofdmenu  ==="
Print "==================="
Print ""
print " 1 Led1 AAN"
print " 2 Led1 UIT"
print ""
print "Voer uw keuze in: ";

return

Deze code gebruik ik nu even maar het probleem is dus dat de reactie vrij traag is, het kan natuurlijk zijn dat dit niet aan mijn code ligt maar aan de hardware (misschien hoort dit topic ook wel ergens anders thuis). Het verzenden gaat wel supersnel (vanuit cc).

Weet iemand hoe ik dit probleem kan oplossen?

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 13-09 20:13

LauPro

Prof Mierenneuke®

Topicstarter
Kennen we de taal BASIC niet??

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • Lone Gunman
  • Registratie: Juni 1999
  • Niet online
toevallig heb ik n project met wat vrienden waarbij we ook c-controllers gebruiken, alleen is de aansturing dan via een c++ programma.

In jouw geval gaat het mis met de pauzes denk ik. Als je een pauze doet is je hele c-controller namelijk geblokt. Zorg dus gewoon dat je geen pauzes gebruikt in je programma. Als je n beetje overweg kunt met basic is dat heel makkelijk te doen iig.

mzzl, lone

Experience has taught me that interest begets expectation, and expectation begets disappointment, so the key to avoiding disappointment is to avoid interest.


  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 13-09 20:13

LauPro

Prof Mierenneuke®

Topicstarter
De pauzes zijn niet echt het probleem, ik heb juist zo weinig mogelijk 'rommel' in het hoofdprogramma gezet. Zie hier:
code:
1
2
3
4
5
6
7
8
9
10
#loop

IF RXD THEN get rd else goto loop
'if rd = 0 then 
'gosub print_menu
if rd = 49 then gosub lamp1_on
if rd = 50 then gosub lamp1_off

rd = 0
goto loop

om een beetje menu te krijgen zijn deze regels verplicht. Maar ik heb al gemerkt dat waarschijn de traagheid (4Mhz) het probleem is, om de 20ms doet hij een regel geloof ik en dan kan het net zijn dat wanneer ik een teken verzend dat dat teken niet wordt ontvangen, misschien moet ik een baud rate van 2400 gebruiken?

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • Lone Gunman
  • Registratie: Juni 1999
  • Niet online
lees anders ff de manual door, je kan nl ook iets als get RXD doen, dan wacht de controller gewoon net zo lang tot er iets via de serieele interface binnenkomt. Misschien dat dat efficienter is dan t constante pollen wat je nu doet ?

anyweej, zoals ik al zei gebruiken we ook die c-controllers voor een project (2 van die dingen). En dat gaat gewoon gigantisch snel, nergens last van trage response iig.

Experience has taught me that interest begets expectation, and expectation begets disappointment, so the key to avoiding disappointment is to avoid interest.


  • DJSmiley
  • Registratie: Mei 2000
  • Laatst online: 12:31
Iets vergelijkbaars, maar dan korter (en denk ik dus ook sneller):

Ik heb dit geschreven vanuit mn MSX-Basic kennis, kan zijn dat je iets moet omzetten :)
maar t gaat om t idee.
Die MSX was soms ook sloom, met creatief/kort programmeren haal je best snelheidswinst.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
'© Laurens broek 2002
#begin
define lamp1 port[1]
define lamp2 port[2]
define lamp3 port[3]
define lamp4 port[4]
define lamp5 port[5]
define lamp6 port[6]
define lamp7 port[7]
define lamp8 port[8]

define status port[15]

define i word
define rd word

baud R9600

cls
print "1. Led1 aan"
print "2. Led1 uit"
#loop
rd=0
IF RXD THEN GET RD else goto loop
if rd=49 then print "Lamp 1: on" : lamp1=on : goto loop
if rd=50 then print "Lamp 1: off" : lamp1=off : goto loop

dat is dus een stukkie korter (=sneller) en doet 't zelfde. Alleen wat meer (niet-nette) goto's maar who carezz

Weet alleen niet of je ook meerdere regels via : achter elkaar mag zetten.. mag in gewoon basic iig wel
Pagina: 1