Warum funktioniert das Programm nicht?

Gast #3174530
Lesenswert?

Hallo Leute,

kann mir einer helfen?
Ich will mit einem Taster (PIND.2) eine LED (PORTD.5) ein- und 
ausschalten.
Ich habe in Visual Basic ein Programm geschrieben welche mir die LED 
ein- und ausschaltet. Aber warum kann ich mit meinem Taster diese LED 
nicht ein- bzw. ausschalten?

Und vielleicht kann mir ja einer mit VB helfen wie kann ich den 
gesendetet Printbefehl des AVRs in VB in ein Label schreiben? (Auch wenn 
ich per Taster drücke!?)

Vielen Lieben dank jetzt schon mal :)

Micha
1
$regfile = "m8def.dat"
2
$crystal = 1000000
3
$baud = 2400
4

5
Config Portd.5 = Output
6
Config Pind.2 = Input
7
Config Pind.3 = Input
8
Config Portd.6 = Output
9

10
Dim Eingang As String * 255
11

12

13
Do
14

15
   Select Case Pind.2
16
      Case 0
17
         Portd.5 = 0
18
         Print "0"
19
      Case 1
20
         Portd.5 = 1
21
         Print "1"
22
   End Select
23

24

25
   Eingang = ""
26
   Input Eingang
27

28
   Select Case Eingang
29
      Case "0"
30
         Portd.5 = 0
31
         Print "0"
32
      Case "1"
33
         Portd.5 = 1
34
         Print "1"
35
   End Select
36

37
Loop
38

39
End
Gast #3174543
Lesenswert?

Hi

>nein ist es nicht das hat sich so ergeben beim Testen und probieren weil
>diese Funktion nicht geht.

Dann wird es Zeit, das du erst mal ein paar Tage das Programmieren sein 
läßt und das Datenblatt intensiv liest. Dir fehlen die Grundlagen.

MfG Spess
Gast #3174560
Lesenswert?

Martin Kreiner schrieb:
> So wie ich das jetzt in meinem Zustand überblicke:
> Wenn du den Taster gedrückt hälst, sollte die LED an bleiben, lässt du
> den Taster wieder los, erlischt sie.
> Funktioniert das soweit?

So ist es geplant aber funktioniert so leider nicht. Nehme ich diese 
Zeile raus funktioniert es

> Eingang = ""
>    Input Eingang
>
>    Select Case Eingang
>       Case "0"
>          Portd.5 = 0
>          Print "0"
>       Case "1"
>          Portd.5 = 1
>          Print "1"
>    End Select
Gast #3174582
Lesenswert?

Martin Kreiner schrieb:
> Auf die schnelle Google-Suche habe ich jetzt nur herausfinden können,
> das BASCOM bei [i]select case[/i] nur nummerische Werte zulässt.
> Bei der zweiten Abfrage handelt es sich aber um einen String. Hm, hätte
> der Compiler doch monieren müssen, oder nicht?

Das funktioniert aber super :)
#3176130
Lesenswert?

Ungetestet würde ich es so probieren:
1
$regfile = "m8def.dat"
2
$crystal = 1000000
3
$baud = 2400
4

5

6
$hwstack = 20
7
$swstack = 20
8
$framesize = 10
9

10
Ddrd = &B00100000                                           'D.5 als Ausgang
11
Portd = &B00000100                                          'Pullups
12

13
Dim Eingang As Byte
14

15

16
Do
17

18
   If Ischarwaiting() = 1 Then
19
      Eingang = Inkey()
20
      Select Case Eingang
21
         Case 48                                               '0
22
            Reset Portd.5
23
         Case 49                                            '1
24
            Set Portd.5
25
      End Select
26
      Print Chr(eingang)
27
   End If
28

29
   If Pind.2 = 0 Then                                       'Taster nach GND mit Pullups
30
      Toggle Portd.5
31
      Print Portd.5
32
      Do
33
         Waitms 20
34
      Loop Until Pind.2 = 1                                 'Warten bis Taster wieder losgelassen wurde
35
   End If
36

37
Loop
38

39
End

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren