Forum: Mikrocontroller und Digitale Elektronik Atmega 8 Hardwarefehler


von Typer (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

habe mir eine Platine mit Target entworfen und diese fertigen lassen.
(Schaltplan im Anhang)

nun hab ich die Platine bestückt und ein kleines Bascom-programm zum 
testen ausgespielt welches die 3 LEDs über die Taster blinken lassen 
soll.
1
 
2
$regfile = "M8def.dat"
3
$crystal = 16000000
4
$hwstack = 100                                              'im Speicher werden für den Hardware-Stack 100 Byte reserviert
5
$swstack = 100                                              'im Speicher werden für den Software-Stack 100 Byte reserviert
6
$framesize = 100                                            'im Speicher werden für den Frame 100 Byte reserviert
7
$baud = 9600
8
9
'##### 4 Taster #####
10
'--------------------
11
12
Config Pind.5 = Input
13
Taster1 Alias Pind.5
14
Taster1 = 1                                                 'pullup
15
16
Config Pind.4 = Input
17
Taster2 Alias Pind.4
18
Taster2 = 1                                                 'pullup
19
20
Config Pind.3 = Input
21
Taster3 Alias Pind.3
22
Taster3 = 1                                                 'pullup
23
24
Config Pind.2 = Input
25
Taster4 Alias Pind.2
26
Taster4 = 1
27
28
29
'Leds
30
Config Portc.0 = Output
31
Config Portc.1 = Output
32
Config Portc.2 = Output
33
34
Led_grün Alias Portc.2
35
Led_gelb Alias Portc.1
36
Led_rot Alias Portc.0
37
38
Portb = 0
39
40
41
Do
42
43
44
If Taster1 = 0 Then
45
46
   Toggle Led_grün
47
48
Elseif Taster2 = 0 Then
49
50
   Toggle Led_gelb
51
52
Elseif Taster3 = 0 Then
53
54
   Toggle Led_rot
55
56
End If
57
58
59
If Taster4 = 0 Then Toggle Portc
60
61
62
Waitms 500
63
64
Print "Test"
65
66
Loop
67
68
69
End

Nun mein Fehler:
Es blinken immer alle LEDs, egal ob die Taster betätigt werden oder 
nicht.
Auch die Terminalausgabe (Test) erscheint unleserlich am PC, als wäre 
die Baudrate falsch eingestellt. Taster habe ich mit nem Multimeter 
geprüft.

Hat noch jemand einen Rat für mich oder habe ich etwas übersehen?

Bin für alle Vorschläge offen.

von pullup (Gast)


Lesenswert?

Typer schrieb:
> Config Pind.5 = Input
> Taster1 Alias Pind.5
> Taster1 = 1                                                 'pullup

um den pullup zu aktivieren muß das PORTxy Register gesetzt werden.

von Typer (Gast)


Lesenswert?

Aber das mach ich doch mit
"Taster = 1"

auf nem Mega168 funktioniert es, auf dem Mega8 nicht.

Wird der Pullup bei einem Mega8 anders gesetzt?

von pullup (Gast)


Lesenswert?

Typer schrieb:
> Aber das mach ich doch mit
> "Taster = 1"


Nein, dem Namen Taster1 ist durch das alias das Pind.5 Bit im PIND 
Register zugewiesen.

so könnte man es machen:

Config Pind.5 = Input   'oder es geht auch "Config Portd.5 = Input"
Portd.5 = 1             'pullup
Taster1 Alias Pind.5
                        'Taster1 = 1  - unnötig

Taster1 hat schon externen Pullup nach Schaltplan. Pullup muß aber bei 
den anderen Tastern gemacht werden.

Wie es beim Mega168 geht ??? Siehe Datenblatt.

von spess53 (Gast)


Lesenswert?

Hi

>auf nem Mega168 funktioniert es, auf dem Mega8 nicht.
>Wird der Pullup bei einem Mega8 anders gesetzt?

Nein. Aber beim Schreiben einer 1 in das Pin-Register wird beim 
ATMega168 das Portregister getoggled und damit bei dir der Pull-Up 
eingeschaltet. Beim ATMega8 passiert nichts.

MfG Spess

von Thomas D. (thomasderbastler)


Lesenswert?

So wäre korrekt...

Config Pind.1 = Input
Portd.1 = 1
Taster1 Alias Pind.1

von Typer (Gast)


Lesenswert?

ok, werde das morgen mal testen und nochmal berichten

danke

von Typer (Gast)


Lesenswert?

Hi, hab es eben nochmal versucht!


Fehler!!!
Config Pind.5 = Input   'oder es geht auch "Config Portd.5 = Input"
Taster1 Alias Pind.5
Taster1 = 1


Fehler!!!
Config Pind.5 = Input   'oder es geht auch "Config Portd.5 = Input"
Pind.5 = 1             'pullup
Taster1 Alias Pind.5


SO GEHT ES!!!
Config Pind.5 = Input   'oder es geht auch "Config Portd.5 = Input"
Portd.5 = 1             'pullup
Taster1 Alias Pind.5

Danke, problem gelöst.

von Stefan W. (wswbln)


Lesenswert?

...aber auch verstanden?

Lies sicherheitshalber nochmal das Kapitel über die Parallelports im 
Datenblatt.

von pullup (Gast)


Lesenswert?

Stefan Wimmer schrieb:
> ...aber auch verstanden?
>
> Lies sicherheitshalber nochmal das Kapitel über die Parallelports im
> Datenblatt.

Welches Datenblattt? Welche Kapitelnummer? Beim Mega8 find ich kein 
Kapitel über Parallelports. Sollte wohl Kapitel über I/O Ports sein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.