Forum: Mikrocontroller und Digitale Elektronik Problem Analogmessung


von Luke (Gast)


Lesenswert?

Hallo, ich habe ein Problem mit meinem Atmega88. Ich möchte mit zwei 
Analogeingängen (ADC0 & ADC1) zwei Spannungen messen und diese in meiner 
Software weiterverarbeiten.

Jetzt habe ich folgendes Problem:
Wenn ich die Spannungen anlege bevor der Controller startet hängt sich 
das Programm auf, lege ich die Spannungen an nachdem der Controller 
hochgelaufen ist funktioniert das Programm ohne Probleme. Gibt es bei 
der Initalisierung der Analogeingänge oder den FUSE & LOCK-Bit's etwas 
zu beachten ? Unten habe ich den Programmkopf (BASCOM) eingefügt.

Vielen Dank für Eure Hilfe !

Luke



$regfile = "m88def.dat"                          'ATmega8-Deklarationen
$crystal = 3686400                               'Quarz: 3,6864 MHz
$baud = 38400

$hwstack = 40
$swstack = 32
$framesize = 60

Config Clockdiv = 1                        'Quarzfrequenz durch "1" 
teilen

Twsr = &B00000000    'Bit7->Bit2=Status I²C-Aktion / Bit1->Bit0 = 
0->I²C-Vorteilung=1
Twbr = &B00000000     'I²C-Bitrate=230400Hz=Quarz / 
(16+2*TWBR*4βC-Vorteilung)

Config Serialout = Buffered , Size = 30
Config Serialin = Buffered , Size = 3

$prog &HFF , &H4C , &HDD , &HF9                  'Fuse und Lock-Bit's

Ddrb = &B00000111                       'Configuration Port B
Portb.0 = 0                             'OUT Melderelais K3
Portb.1 = 0                             'OUT Melderelais K2
Portb.2 = 0                                                 'OUT 
Absenkung
Portb.3 = 1                                                 'MOSI
Portb.4 = 1                                                 'MISO
Portb.5 = 1                                                 'SCK
Portb.6 = 1                                  'Frei PullUp aktiv (Quarz)
Portb.7 = 1                                  'Frei PullUp aktiv (Quarz)

Ddrd = &B10011100                          'Configuration Port D
Portd.0 = 1                                'Frei PullUp aktiv (RXD)
Portd.1 = 1                                'Frei PullUp aktiv (TXD)
Portd.2 = 0                                'OUT Watchdog (Wobbel-Bit)
Portd.3 = 0                                'Interrupt INT1
Portd.4 = 1                                'Frei
Portd.5 = 0                                'IN Konfiguration Shunt
Portd.6 = 0                                'IN Konfiguration Shunt
Portd.7 = 0                                'OUT Batterierelais

Ddrc = &B00001100 
'Configuration Port C
Portc.0 = 0                                       'ADC0 Spannung 
Ladegerät
Portc.1 = 0                                       'ADC1 Spannung 
Batterie
Portc.2 = 1                                                'OUT 
Melde-LED 1
Portc.3 = 0                                                'OUT 
Melde-LED 2
Portc.4 = 0                                                 'I²C SDA
Portc.5 = 0                                                 'I²C SCL
Portc.6 = 1                                              'Frei PullUp 
aktiv
Portc.7 = 1                                              'Frei PullUp 
aktiv

Admux = &B00000000  'ADMUX -> PC0 / obere 4 Bit für A/D-Konverter / AREF 
extern verbunden
Adcsra = &B11000011  'A/D-Konverter EIN  Konvertierung starten  Takt : 
8

von Erich (Gast)


Lesenswert?

>Jetzt habe ich folgendes Problem:
>Wenn ich die Spannungen anlege bevor der Controller startet

Das ist generell ganz schlechte Idee und außerdem verboten, führt zu 
"latch up", siehe http://de.wikipedia.org/wiki/Latch-Up-Effekt

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.