psfoto

RCLine User

  • »psfoto« ist der Autor dieses Themas

Wohnort: Bei Stuttgart

  • Nachricht senden

1

Donnerstag, 18. September 2008, 10:47

Bascom, Adam und Eva..

da muß ich wohl anfangen....

Nach einigen Tritten in den A..llerwertesten von Torsten (oder Thomas?) hat das Problem jetzt ein halbes Jahr gegärt und ich hab mich entschlossen, doch mal in euren Kurs reinzuschauen.

Ich hab mir ein wenig Torstens Programm2 vorgenommen und will nur mal den PortC in Abhängigkeit von PortD ein-/ausschalten. Für die ersten Gehversuche benutze ich den Simulator in Bascom, Hardware ist noch keine dran.

Frage nun:
Ist die Simulation vertrauenswürdig?
Bei mir beeinflussen nicht angeschlossene Ports das Ausgabe-Ergebniss, Port.4 schaltet beliebig den Ausgang.7, manchmal werden Eingaben ignoriert, etc...
Ich hab da doch sehr den Simulator im Verdacht, da auch hier abgedruckte Programme zu seltsamen Ergebnissen führen.

Zeitrelevante Geschichten (mit timer, etc..) laufen bei mir auch nicht "realtime"

Besser gleich ne Hardware-Variante?

Hier mal der code meiner Abfrage-Routine:
+++++++++++++++++++++++++++++++++++++++++
'======================================================
'System-Einstellungen
'======================================================
'
$regfile "m16def.dat"

'Angabe der Taktfrequenz (1Mhz)
$crystal = 1000000

'======================================================
'Konfigurationen
'======================================================
Config Portd = Input
Config Portc = Output

'======================================================
'Deklarationen
'======================================================
'

'======================================================
'Initialisierungen
'======================================================

Portc = &B11111111
Portd = &B11111111
Wait 1

'======================================================
'Hauptprogramm-Schleife
'======================================================

Do

'Was man beachten muß:
'Die PIN-Logik ist durch die Pullup-Widerstände negiert!
'Schalter ein -> 0V am Eingang
'0V am Ausgang -> LED leuchtet

'Wenn .... dann...
If Pind.0 = 0 Then
Portc.0 = 0
Else
Portc.0 = 1
End If


If Pind.1 = 0 Then
Portc.1 = 0
Else
Portc.1 = 1
End If

If Pind.2 = 0 Then
Portc.2 = 0
Else
Portc.2 = 1
End If

If Pind.3 = 0 Then
Portc.3 = 0
Else
Portc.3 = 1
End If


Loop

'Programmende (nur formal)
End
+++++++++++++++++++++++++++++++++++++++++++++++++++++

Danke schon mal
Peter



PS
Augenblickliches Ziel ist ein kleiner Beleuchtungscontroller, der ein paar flackernde Neonröhren, auf-/abglimmende Halogenscheinwerfer, auf-/abglimmende Landebefeuerung, evtl. noch nen Blitzer oder ne Xenon-Simulation abkann. Desshalb auch die Wahl des Mega16, ich brauch recht viele Ports und PWM. Direkte RC-Ansteuerung ist bisher noch nicht vorgesehen, reine Schalteingänge. (kann ja noch kommen ;-)


EDIT:
Der integrierte Software-Simulator scheint immer einen Mausklick hinter der tatsächlichen Eingabe hinterherzuhinken.
Und der 90MB-Download vom Studio (als alternativ-Simulator) war wohl auch "für die Katz" , der scheint ja ebenfalls auf nen echten Prozessor für die Sim angewiesen zu sein?
Gibt es ne Möglichkeit, den BasCom-Sim zu triggern, das er seine Anzeigen aktualisiert? Ein zusätzlicher (Dummy-)Befehl zB. "Toggle irgendnen Port" innerhalb des Loops zeigt keinerlei Auswirkungen, bis ich dann mal tatsächlich auf einen der IN-Ports klicke...
New Projects:
Comming soon! ;-)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »psfoto« (18. September 2008, 17:56)


2

Donnerstag, 18. September 2008, 21:13

Hallo Peter,

freut mich, dass Du die Kurve gekriegt hast und Dich jetzt mit den Atmels beschäftigst! :ok:

Dein Programm sieht gut aus, auf der Hardware sollte es funktionieren.

Dem Bascom-Simulator traue ich nicht weiter, als ich spucken kann... so einige Befehle setzt er nicht korrekt um, z. B. Wait.

Von daher, lieber gleich die Hardware besorgen und unter Real-Bedingungen testen.

Noch ein Tipp, Programmcode lässt sich hier gut mit dem Code-Tag (#) darstellen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
'======================================================
'System-Einstellungen
'======================================================
'
$regfile "m16def.dat"

'Angabe der Taktfrequenz (1Mhz)
$crystal = 1000000

'======================================================
'Konfigurationen
'======================================================
Config Portd = Input
Config Portc = Output

'======================================================
'Deklarationen
'======================================================
'

'======================================================
'Initialisierungen
'======================================================

Portc = &B11111111
Portd = &B11111111
Wait 1

'======================================================
'Hauptprogramm-Schleife
'======================================================

Do

'Was man beachten muß:
'Die PIN-Logik ist durch die Pullup-Widerstände negiert!
'Schalter ein -> 0V am Eingang
'0V am Ausgang -> LED leuchtet

'Wenn .... dann...
If Pind.0 = 0 Then
Portc.0 = 0
Else
Portc.0 = 1
End If


If Pind.1 = 0 Then
Portc.1 = 0
Else
Portc.1 = 1
End If

If Pind.2 = 0 Then
Portc.2 = 0
Else
Portc.2 = 1
End If

If Pind.3 = 0 Then
Portc.3 = 0
Else
Portc.3 = 1
End If


Loop

'Programmende (nur formal)
End


Grüße

Torsten
[SIZE=4]www.zuendapp.net - die grösste Zündapp-Community im Internet! :ok:[/SIZE]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Torsten_G« (18. September 2008, 21:14)


psfoto

RCLine User

  • »psfoto« ist der Autor dieses Themas

Wohnort: Bei Stuttgart

  • Nachricht senden

3

Freitag, 19. September 2008, 06:30

Danke!

Dann werd ich mir erstmal ein paar Käferchen zulegen...

Peter
New Projects:
Comming soon! ;-)