Atmega 8 Hardwarefehler

Gast #2552743
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.
Angehängte Dateien:
Gast #2553294
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.
Gast #2553299
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
Gast #2554606
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.

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