Warum funktioniert das Programm nicht?

Gast #3174530
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 #3174532
Hi

>Config Portd.5 = Output
>Config Pind.2 = Input
>Config Pind.3 = Input
>Config Portd.6 = Output

Ist dieses Durcheinander PIN/PORT beabsichtigt?

MfG Spess
Gast #3174543
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
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
#3174579
Auf die schnelle Google-Suche habe ich jetzt nur herausfinden können, 
das BASCOM bei select case 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?
Gast #3174582
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
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

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.