Frequenz-Zähler mit Picaxe funktioniert nicht.

OP #3428209
Lesenswert?

Hallo zusammen,

für den Einstieg in die µC-Welt habe ich angefangen, mich mit Picaxe zu 
beschäftigen und ich habe es tatsächlich auch schon geschafft, LEDs 
blinken zu lassen :-D

Dann habe ich diesen Temp-Reader erfolgreich nachgebaut:
http://picaxe.zierath-software.de/beispiele/DS18B20.html
Der Code ist ursprünglich für einen 20M, daher mußte ich ihn
erst für meinen 08M2+ anpassen, was aber nicht sehr schwer war.

Also Zeit für die nächste Schwierigkeitsstufe:
http://picaxe.zierath-software.de/beispiele/Freqmessung.html
Damit hab ich nun so meine Probleme.
Auch hier ist es nötig den Code anzupassen, da dieser für einen
14M geschrieben ist, ich jedoch einen 14M2 verwenden will, der
einen etwas geänderten Befehlssatz enthält.
Die Ausgabe soll auf auf ein LCD-Display QC1602A (blau/weiß) erfolgen, 
also 16 Zeichen x 2 Zeilen, klar. Der Controller ist laut Datenblatt ein 
KS0066, meiner Recherche nach 100% kompatibel mit dem HD44780.
Letztendlich wird im Versuchsaufbau nichts Brauchbares angezeigt, 
lediglich die obere Reihe zeigt 16 weiße Klötzchen, was aber wohl kaum 
daran liegen wird, daß ich noch kein Meßsignal angelegt habe. Ich vemute 
den Fehler zunächst mal im Code, denn ich bin nicht sicher,
ob meine Anpassungen korrekt sind. Gerade die Initialisierung ist für 
mich ein bömisches Dorf, da tappe ich völlig im Dunkeln.
Ich habe zwar versucht, das Thema Initialisierung über die Seite
http://www.sprut.de/electronic/lcd/ zu lösen, dabei hat mein Hirn 
allerdings einen Strömungsabriss erlitten ;-)

Wäre schön, wenn mir jemand auf die Sprünge helfen könnte...
Herzlichen Dank :-)
Hier der von mir angepaßte Code:
1
setfreq m8
2

3
symbol Wert=b0
4
symbol LesePin=b1
5
symbol HighWert=b2
6
symbol LowWert=b3
7
symbol Zehntausend=b4
8
symbol Tausend=b5
9
symbol Hundert=b6
10
symbol Zehner=b7
11
symbol Einer=b8
12
symbol Schalter=b9
13
pause 250
14

15
'** LCD Display initialisieren  ************
16

17
let dirsB = %00111111
18

19
FOR b0=1 to 2
20
    LET PINSB=%00100011:low 5
21
    LET PINSB=%00100011:low 5
22
    pause 50
23
NEXT b0
24

25
LET PINSB=%00100000:low 5
26
LET PINSB=%00100010:low 5
27
pause 10
28

29
LET PINSB=%00100000:low 5
30
LET PINSB=%00100001:low 5
31
pause 1
32

33
LET PINSB=%00100000:low 5
34
LET PINSB=%00100100:low 5
35
pause 1
36

37
LET PINSB=%00100000:low 5
38
LET PINSB=%00101100:low 5
39
'*************************************
40

41

42
main:
43
 
44
   count LesePin,500,w5
45
   w6=w5*4
46
   pause 15  
47
   count LesePin,500,w5
48
   w5=w5*4
49
   if w6>w5 then
50
      w5=w6
51
   endif
52
     
53
   '__________________________________________________________  
54
   BINTOASCII w5, Zehntausend, Tausend, Hundert, Zehner, Einer
55

56
  
57
   '_______________________________
58
   LET PINSB=%00101000:low 5
59
   LET PINSB=%00100000:low 5
60
   Wert=Zehntausend:gosub sendtext
61
   Wert=Tausend:gosub sendtext
62
   Wert=46:gosub sendtext
63
   Wert=Hundert:gosub sendtext
64
   Wert=Zehner:gosub sendtext
65
   Wert=Einer:gosub sendtext
66
   Wert=32:gosub sendtext
67
   Wert=75
68
   LesePin=0
69
   Schalter=pinc.1
70
   if Schalter=1 then
71
      Wert=77
72
      LesePin=2
73
   endif
74
   gosub sendtext
75
   Wert=104:gosub sendtext
76
   Wert=122:gosub sendtext
77
   '_______________________________
78
  
79
  
80
goto main 
81

82

83

84
sendtext:
85
 
86
     HighWert=Wert/16
87
     LowWert=HighWert*16:LowWert=Wert-LowWert
88
    
89
     HighWert=HighWert+48
90
     let pinsB=HighWert:low 5
91
   
92
     LowWert=LowWert+48
93
     let pinsB=LowWert:low 5
94
     pause 1
95
return
OP #3429503
Lesenswert?

@Karl Heinz
Laut Handbuch:
The low command switches an output off (low).
On microcontrollers with configurable input/output pins this command 
also
automatically configures the pin as an output

Aber Du bringst mich da auf eine Idee! Das müßte ja eigentlich auch "LOW 
B.5" heißen, da der 14M2 ja B und C Pins hat und das ja irgendwie 
unterschieden werden muss...?

Probier ich gleich mal aus :-)
#3429536
Lesenswert?

Von deinem µC versteh ich nicht viel.

Aber diese ganze Programmierung auf deinen verlinkten Web-Seiten sieht 
extrem brutal aus. Um Timing Sachen oder Reihenfolgen kümmern sich diese 
Brüder herzlich wenig.

Aber was will man schon erwarten, wenn jemand auf einer Web-Site 
"Standart" schreibt.
OP #3429563
Lesenswert?

Da muss ich Dir recht geben, selbst mir als Laie ist aufgefallen, daß 
der Code für den Zähler Fehler enthält und so nicht wirklich richtig 
funktionieren kann (z.B. der 9-stellige Binärcode in der 
Initialisierungssequenz)

Leider hab ich keine brauchbaren anderen Seiten gefunden, die so 
übersichtlich einfache Picaxe-Projekte vorstellen. Zum lernen dachte 
ich, sei das ganz gut, aber da liege ich wohl falsch...

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