Forum: Mikrocontroller und Digitale Elektronik Atmega16 spinnt ohne angeschlossenem ISP


von Zehn V. (langerblitz)


Lesenswert?

Guten Abend,

vor kurzem habe ich ein Programm zum Auslesen von Encodern geschrieben, 
welches zawr noch nicht fertig ist, aber bisher fast ohne Probleme 
funktioniert:
1
$regfile = "m16def.dat"
2
$crystal = 8000000
3
4
Config Porta = Input
5
Config Portd = Output
6
Porta = 255
7
Portd = 0
8
9
A Alias Pina.0    'KANAL-A DES DREHENCODERS
10
B Alias Pina.2    'KANAL-B DES DREHENCODERS
11
Enter Alias Pina.1  'DRUCKTASTE DES ENCODERS
12
13
14
Do
15
16
Portd = 0  'SETZE ALLE PINS VON PORTD AUF NULL
17
18
If B = 0 Then
19
   Gosub Prozedur_b
20
      Elseif A = 0 Then
21
         Gosub Prozedur_a
22
            Elseif A = 1 And B = 1 Then
23
               Goto Begin
24
End If
25
26
Loop
27
End
28
29
Prozedur_a:
30
31
   Portd.1 = 1    'DIENT ZUR ÜBERPRÜFUNG DER FUNKTION DES PROGRAMMS
32
   While B = 1    'WIEDERHOLE; BIS KANAL-A UND -B ÜBERLAGERT
33
   WEND      
34
   Portd.0 = 1    'DIENT ZUR ÜBERPRÜFUNG DER FUNKTION DES PROGRAMMS
35
   While Enter = 1  'SOLANGE ENTER NICHT GEDRÜCKT, WIEDERHOLE
36
   Wend
37
   Return
38
39
Prozedur_b:
40
41
   Portd.6 = 1    'DIENT ZUR ÜBERPRÜFUNG DER FUNKTION DES PROGRAMMS
42
   While A = 1    'WIEDERHOLE; BIS KANAL-A UND -B ÜBERLAGERT
43
   WEND      
44
   Portd.7 = 1    'DIENT ZUR ÜBERPRÜFUNG DER FUNKTION DES PROGRAMMS
45
   While Enter = 1  'SOLANGE ENTER NICHT GEDRÜCKT, WIEDERHOLE
46
   Wend
47
   Return

Das Problem ist nun aber, dass

1. , wenn der PinA.1 auf 0 geht, die Spannung an PinA.2 ebenfalls auf 
etwa 2,8V abfällt und dieser folglich als PinA.2=0 gelesen und auch 
ungewollterweise ausgewertet wird. Mysteriöserweise kann ich keinen 
bedeutend kleinen Widerstand zwischen PinA.1 und PinA.2 messen!

2. , sobald der ISP-Programmer (mySmartUSB light) abgesteckt wird, tut 
der Controller ganz eigene Dinge und reagiert kaum noch auf 
Tasteneingaben, geschweige denn wertet sie korrekt aus. Dennoch sind 
während dieser Problematik alle Pins auf high, dh. liegen an jedem von 
ihnen 4,8V an.
Scheint also wohl ein Programmfehler zu sein, da elektrisch alles in 
Ordnung zu sein scheint.

Für eure Hilfe wäre ich sehr dankbar!

von holger (Gast)


Lesenswert?

>Scheint also wohl ein Programmfehler zu sein, da elektrisch alles in
>Ordnung zu sein scheint.

Ich behaupte jetzt einfach mal das deine Schaltung
einfach nur scheisse ist.

von Zehn V. (langerblitz)


Lesenswert?

Wieso bist du der Meinung, meine Schaltung sei ineffizient, wenn ich 
schreibe, dass sie laut Messung in ordnung ist?
Vorallem tut sie funktionieren, also liegt das Problem meiner Meinung 
nach einzig und allein am µC.

von Karl (Gast)


Lesenswert?

Ohne jetzt genau Deinen Code zu studieren....Kennst Du die 
BASCOM-Funktion Encoder? Nur die Drucktaste müsstest Du noch extra 
programmieren.

von Thomas E. (thomase)


Lesenswert?

Sven Schmidt schrieb:
> 2. , sobald der ISP-Programmer (mySmartUSB light) abgesteckt wird, tut
> der Controller ganz eigene Dinge und reagiert kaum noch auf
> Tasteneingaben, geschweige denn wertet sie korrekt aus.

Sven Schmidt schrieb:
> Vorallem tut sie funktionieren
Sehr gewagte These.

holger schrieb:
> Ich behaupte jetzt einfach mal das deine Schaltung
> einfach nur scheisse ist.
Das ist schwer von der Hand zu weisen.

Masse und Vcc auf beiden Seiten ordentlich angelötet?
Stützkondensatoren vorhanden?

mfg.

von Zehn V. (langerblitz)


Lesenswert?

Alles ist gegeben. Stützkondensatoren und ordentliches Verlöten.
Problem allerdings gelöst:
habe irgendwo noch einen neuen µC gefunden und diesen eingesetzt. Nun 
ist alles wieder in ordnung. Ich weiß nicht, wie das passieren konnte, 
dass der alte µC nicht richtig funtioniert.

Trotzdem danke für eure Hilfe um diese Uhrzeit!

von Krapao (Gast)


Lesenswert?

Das Programm ist suboptimal, weil der µC steht (wg. sequentiellem Ablauf 
und while...wend), wenn der Encoder steht. Das kann man in den wenigsten 
Anwendungen brauchen.

> Config Porta = Input
> Porta = 255

=> low-active Taster an PORTA. Das setzt eine ordnungsgemäße Versorgung 
an AVcc/AGND voraus. Wenn es da Mängel im Schaltplan und/oder im Aufbau 
gibt, kann man die von dir beschriebenen Effekte erwarten.

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.