bitte checken. Bascom

Gast #709489
Lesenswert?

Hallo!
was ist an diesen programm verkehrt?
1
$regfile = "m8def.dat"
2
$crystal = 1000000
3

4
Config Clock = Soft
5
Config Portb.0 = Output                                     'LED
6
Config Portb.1 = Output                                     'Ausgang
7
Time$ = "00:00:00"
8
Dim Led As Byte
9
Dim Luefter As Byte
10

11
Do
12
If Time = "00:01:00" Then
13
Gosub Luefter
14
Else
15
Gosub Led
16
End If
17
Loop
18

19

20

21
Led:
22

23
Set Portb.0
24
Waitms 50
25
Reset Portb.0
26
Waitms 50
27

28
Return
29

30
Luefter:
31

32
Set Portb.1
33
Waitms 500
34
Reset Portb.1
35

36
Return
37
End
compiler sagt in dieser zeile "If Time = "00:01:00" Then " ist ein 
Invalid Datatyp.
Gast #709501
Lesenswert?

aber die Zeit auf dem lcd läuft nicht. warum?
Config Lcd = 16 * 4
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , 
Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4

Initlcd
Cls

Config Clock = Soft
Config Portb.0 = Output                                     'LED
Config Portb.1 = Output                                     'Ausgang
Time$ = "00:00:00"

Dim Led As Byte
Dim Luefter As Byte
Locate 1 , 5
Lcd Time$
Do
If Time$ = "00:01:00" Then
Gosub Luefter
Else
Gosub Led
End If
Loop
Led:
Set Portb.0
Wait 1
Reset Portb.0
Wait 1
Return
Luefter:
Set Portb.1
Wait 30
Reset Portb.1
Return
End
#709522
Lesenswert?

Alex wrote:

> aber die Zeit auf dem lcd läuft nicht. warum?

Die Zeile "Lcd Time$" aktualisiert die Zeit auf dem Display. Sie müsste 
also zyklisch aufgerufen werden, damit sie die laufen Uhrzeit anzeigen 
kann. Tut sie aber nicht. Sie wird nur einmal im ganzen Programm 
angesprungen...nämlich beim Start... und das hätte dir ganz locker 
flockig selber auffallen können.
#709532
Lesenswert?

Avr Nix wrote:
> muss man nicht noch einen Uhrenquarz anschliessen?

Nicht zwangsläufig. Die Uhr kann auch vom internen RC-resonator laufen.
Jedenfalls fehlt die "crystal"- Angabe, damit der Compiler weiss, mit 
welchen Systemtakt die Kiste läuft und diesen auf 1 Herz runterteilen 
kann.
#709552
Lesenswert?

Niels Hüsken wrote:

> angesprungen...nämlich beim Start... und das hätte dir ganz locker
> flockig selber auffallen können.

Hätte es. Wenn er sich endlich mal angewöhnen würde, den
Code einzurücken (oder kann BASCOM das nicht?).

@Alex
Vergleich doch die Schreibweise mal damit:
1
Config Lcd = 16 * 4
2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 ,
3
Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
4

5
Initlcd
6
Cls
7

8
Config Clock = Soft
9
Config Portb.0 = Output                                     'LED
10
Config Portb.1 = Output                                     'Ausgang
11
Time$ = "00:00:00"
12

13
Dim Led As Byte
14
Dim Luefter As Byte
15

16
Locate 1 , 5
17
Lcd Time$
18

19
Do
20
  If Time$ = "00:01:00" Then
21
    Gosub Luefter
22
  Else
23
    Gosub Led
24
  End If
25
Loop
26

27
Led:
28
  Set Portb.0
29
  Wait 1
30
  Reset Portb.0
31
  Wait 1
32
  Return
33

34
Luefter:
35
  Set Portb.1
36
  Wait 30
37
  Reset Portb.1
38
  Return
39

40
End

Da sieht man schon besser, dass die Ausgabe nicht in der
Schleife enthalten ist.
Persönliche Seite #709630
Lesenswert?

Shit happens. Du hast mein aufrichtiges Beileid.

Hoffentlich ist nicht mehr futsch. Ein wenig Trost: Eine LPT-Karte 
kostet nicht die Welt.

Vielleicht ist das auch ein Anlass für dich, dir einen extrem 
preiswerten Bastelcomputer zuzulegen. Für ein gelegentliches 
ISP-Programmieren mit AVRDUDE, muss der gar nicht viel Power haben und 
als no-cost OS kannst du Linux nehmen.
#709660
Lesenswert?

Alex wrote:
> na ja, die Platine lag auf dem Tisch, und da war noch Stück lötzinn
> drunter..
> kurzschluss.
> beim ISP 74LS244 aufgeglüht und Parallel port kaputt :(


Entweder man nimmt ein Labornetzteil mit einstellbarer Strombegrenzung 
oder ne Wandwarze mit 100mA-Regler (78L05) dahinter.
Dann glüht nichts mehr auf.

Ich stecke auch gerne mal IC falschrum oder versetzt ein, noch nie ist 
was kaputt gegangen. Ein gutes Labornetzteil spart richtig viel Geld.

Es soll ja Leute geben, die nehmen zum Experimetieren dicke 50A 
PC-Netzteile oder Autobatterien, daß es nur so qualmt. Muß jeder selber 
wissen, ob er das Geld so zum Fenster rausschmeißt.


Peter
#709827
Lesenswert?

Alex wrote:
> ich sehe schon.
> gibt es.
> kann man die denn dafür verwenden?

Ich hab zwar auch sowas noch nie gesehn, könnte aber sein. Jedenfall 
dürfte das eher funktionieren als ein USB-LPT-Anschluss.

Aber vieleicht solltest du dir mal überlegen, einen vernünftigen USB ISP 
zuzulegen, z.B. AVR Dragon.

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