Bascom Schleifen Problem

OP #3699036
Lesenswert?

Hallo von einem absoluten Anfänger (kurz vor der Rente).
Im Rahmen meiner (noch) beruflichen Tätigkeit muss (darf)
ich über 150 Kabelbäume (siehe Schaltbild) prüfen. Manuell
mittels Durchgangstester und Voltmeter etwas mühsam.
Diese Aufgabe soll ein Attiny13 übernehmen. Das beigefügte
(einfache und mikrige) Programm würde zwar funktionieren,
aber eine akustische Meldung, 3x schnelles "piepen" pro
Prüfling, wäre von vorteil um nicht ständig die LED's zu
beobachten.Nur wie muss die Schleife dafür aussehen?
Meine Versuche sind kläglich in die "Hose" gegangen. Bei
meinen "Versuchen" war ständig ein "Dauerpiepen" zu hören!
Wer kann mir da weiterhelfen?

1
'Anschlussbelegung des Tiny13:
2

3
'Pin 1: Reset, Widerstand 10k nach Pin 8 (VCC)
4
'Pin 2: PB3, ADC-Eingang ADC3, Messeingang
5
'Pin 3: PB4, ADC-Eingang ADC2, Messeingang
6
'Pin 4: GND, Masse
7
'Pin 5: PB0, LED für "Gut-Meldung", 5,0V
8
'Pin 6: PB1, LED für "Gut-Meldung", Kabel OK
9
'Pin 7: PB2, ADC-Eingang ADC1, Messeingang
10
'Pin 8: VCC, Versorgungsspannung
11

12

13
$regfile = "attiny13.dat"
14
$crystal = 9600000
15
$hwstack = 16
16
$swstack = 16
17
$framesize = 16
18

19
Config Portb.0 = Output                               ' LED grün = 5,0 V
20
Config Portb.1 = Output                               ' LED grün = Kabel OK
21

22

23
Dim W As Word
24
Dim U As Word
25
Dim V As Word
26

27

28
Config Adc = Single , Prescaler = Auto , Reference = Avcc
29

30
Do
31
Start Adc
32

33
W = Getadc(1)                              ' messen des Analogwertes
34
U = Getadc(2)                              ' messen des Analogwertes
35
V = Getadc(3)                              ' messen des Analogwertes
36

37
Stop Adc
38

39
'Widerstandsschleifen Messung an 2 Punkten
40
'Wenn die Spannung am ADC 2 mit einer Hysterese
41
'von 200mV zwischen 3,9V und 4,1V beträgt und
42
'am ADC 3 mit einer Hysterese von 200mV
43
'zwischen 1,9V und 2,1V beträgt, dann
44
'soll eine LED an Portb.0 leuchten.
45

46

47
If U > 840 Then                                  'Spannung > 4,1 V
48
   Portb.0 = 0
49
End If
50

51
If V > 430 Then                                  'Spannung > 2,1 V
52
   Portb.0 = 0
53
End If
54

55
If U < 840 And U > 799 And V < 430 And V > 389 Then         'Spannungsprüfung
56
   Portb.0 = 1
57
End If
58

59
If U < 799 Then                                  'Spannung < 3,9V
60
   Portb.0 = 0
61
End If
62

63
If V < 389 Then                                  'Spannung < 1,9V
64
   Portb.0 = 0
65
End If
66

67
If W > 251 Then                                  ' Spannung > 5,1 V
68
   Portb.1 = 0
69
End If
70

71
If W < 251 And W > 243 Then                      ' Spannung 4,9 - 5,1 V
72
   Portb.1 = 1
73
End If
74

75
If W < 243 Then                                  ' Spannung < 4,9V
76
   Portb.1 = 0
77
End If
78

79

80
'If Portb.0 = 1 And Portb.1 = 1 Then
81

82
     '3x schnelles Piepen , wenn Bedingung erfüllt
83
     'bis zur nächsten Prüfung an Portb.0 oder
84
     'Portb.1 oder aktivieren von Portb.5
85

86
'End If
87

88
Loop
89

90
End
Angehängte Dateien:
#3699061
Lesenswert?

Hallo Hartmut,
wo willst Du denn eigentlich raus kommen mit Deinem Piep-Signal?

Du könntest mit dem Sound-Befehl an's Werk gehen:

Config Portb.0 = Output 'Hier mußt Du sehen, welchen Portpin Du nehmen 
kannst
Speaker Alias Portb.0
Dim Schleifenzaehler as Byte
If Portb.0 = 1 And Portb.1 = 1 Then
 For Schleifenzaehler = 2 to 0 Step -1
    Sound Speaker , 165 , 1011
    waitms 500
 Next Schleifenzaehler
End if


MfG Paul
OP #3699111
Lesenswert?

Hallo Paul,

danke für die schnelle Antwort. Ich benutze keinen Lautsprecher
sondern einen aktiven Signalgeber. Ich habe nun den Portb.5
dafür genommen und folgende Schleife eingegeben. Nun piept es
ständig, wenn die Bedingung erfüllt ist.
Was muss ich machen, damit es, wenn die Bedingung erfüllt ist,
nur 3x "piept" ? Fehlt da noch ein "Merker"?


If Portb.0 = 1 And Portb.1 = 1 Then
 For Schleifenzaehler = 2 to 0 Step -1
    Portb.5 = 1
    Waitms 10
    Portb.5 = 0
    Waitms 10
 Next Schleifenzaehler
End if


MfG  Hartmut
Gast #3699150
Lesenswert?

>Fehlt da noch ein "Merker"?

Ja, -nur was sollte als Kriterium dienen, um diesen Merker wieder
zurückzusetzen?
So lange das Kabel dransteckt und in Ordnung ist, ist auch die Bedingung
erfüllt.

MfG Paul

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