Forum: Mikrocontroller und Digitale Elektronik Hitze beim at90s2313


von Marvin M (Gast)


Angehängte Dateien:

Lesenswert?

HI

ich habe gerade mit mikrocontroller angfangen.
Nun programmieren und so läuft alles wunderbar, aber ich hab jetzt ein
Programm geschrieben, bei dem über INT0 und INT1 2 Interrupts
ausgelöst werden, INT0 erhöht einen Counter um 1, dann soll wenn
INT1 ausgelöst  die LED  blinken, bis der Counter wieder bei 0 ist.
nun nichts funzt und der mc wird verdammt HEIß.
Ich habe die LED mit einem 1k Widerstand gegen VCC geschaltet. (wie im
Tutorial am PORTB) und die beiden schalter an  PortD
ok schaut euch bitte mal meinen quellcode und sagt wenn ihr was findet

schon mal danke!!!!

von Peter D. (peda)


Lesenswert?

Ein at90s2313 ist kein Pentium. Den kriegst Du also nicht mit Software
heiß.

Du hast einen Hardwarefehler.


Peter

von thkais (Gast)


Lesenswert?

Wie sieht deine Spannungsversorgung aus? Kannst Du den Strom messen?

von Chris (Gast)


Lesenswert?

"Ich habe die LED mit einem 1k Widerstand gegen VCC geschaltet.
(wie im Tutorial am PORTB) und die beiden schalter an  PortD
  nop
  brne zaehl2

  ldi mp,0xff
  OUT PORTB,mp"


Hallo,

Wo genau hast Du denn die LED angeschlossen? Du schaltest immer einen
ganzen Port und nicht ein einzelnes Bit ein. Wo genau die beiden
Schalter?

Außerdem:
  ldi temp,0b00000000
  out DDRD,temp  ;als eingang konfi

  ldi temp,0xFF
  ;out DDRB,temp

PortB sollte noch als Ausgang konfiguriert werden. Kommentarzeichen
weg. Zwei mal wird PortB auf FF gesetzt, aber nirgends zurück auf 00.
blinken kann es also nicht.

von edi-edi (Gast)


Lesenswert?

plusaufminusundminusaufplus?!?

von marvin (Gast)


Lesenswert?

OK LEUTE Habs hinbekommen

 so funtionierts anscheinend: hab jeweils 500 OHM zwischen schalter und
Masse gelegt(sonst wie Tutorial) . Kann ein starker Strom zw. INT1 und
INT0 fliessen??(ohne WIderstand)

im Tutorial hab die ja nur 1k Ohm widerstand zw VCC und Port
kann da nicht ein Strom fliessen ,wenn ich 2 Schalter hab die beide an
masse liegen? (von Port -->Port)

ansonsten danke erstmal für die Mühen :-)

von thkais (Gast)


Lesenswert?

Nö, also wenn der Port auf Eingang geschaltet ist, dann fließen da µA
oder bestenfalls mA (mit eingeschalteten internen Pullups).
Der Quellcode - naja - eigentlich läßt man keine Verzögerungsschleifen
innerhalb von Interrupts laufen.

von bukongahelas (Gast)


Lesenswert?

jeder taster hat doch einen eigenen pullup R ?
deswegen doch keine port-pin-verkopplungen.
so mach ichs: von vcc+5V ein R von 4k7 mit dem schalter in
reihe nach masse.der portpin an die verbindung zwischen
R und schalter (taster).(=ein spannungsteiler zw. vcc+masse,
dessen massewiderstand der schalter ist,mittelpunkt des spteilers
an portpin.)
port als input konfigurieren,interne pullups abschalten.
schalter geschlossen:null ohm nach masse="sauberes low".
schon +1V kann als high zählen!
schalter offen:der portpin "sieht" nach vcc+5V 4.7 kiloohm.
also sind i=u/r 5V/ca.5k=1mA. da kann nix anbrennen!
eleganter wärs die controller-internen pullups zu aktivieren
und die schalter einfach nach masse zu schließen.
wenn der port allerdings als out konf ist,irgendwie (ladebefehl?)
pins hi sind und dann der schalter auf geschlossen steht,
fließen mindestens 20mA oder mehr aus jedem portpin über den
geschlossenen schalter nach masse (=kurzschluß).
das kann schon etwas riechen.
allgemein:wenns bei solchen low-power logikschaltungen beim
anfassen weh tut oder es heiß riecht,sofort aus.
meistens ist dann noch nichts dauerhaft abgebrannt.
aus leidvoller erfahrung kann ich nur wärmstens empfehlen,
bei input signalen !sauber! d.h. möglichst mit null ohm
gegen masse zu schalten.schon ab ca. 2V zählt alles als hi.
und:schon ein offener eingang zählt meistens als hi,
wenn nicht als antenne...viel spaß beim fehlersuchen.
ähnlich lustig wie "vergessene" 100nF C´s an jedem IC.
naja,wenns läuft,so lassen,aber die "500 ohm zwischen masse
und schalter" fand ich seltsam,hat vielleicht einen tieferen
sinn.nundenn...

von blacky black (Gast)


Lesenswert?

Passt zwar jetzt nicht wegen der Frage, aber ich hab auch gerade
angefangen mit AT90S2313 zu arbeiten, bzw. "studiere" gerade die
Datenblätter, ich möchte mir ein Car-System aufbauen und will den 2313
wie bei www.infracar.de aufbauen, leider können die mir die hex.codes
nicht geben, ist auch verständlich, deshalb will ich das halt selbst
versuchen, kann mir da jemand helfen die so zu flashen oder zu
programmieren.

von marvin (Gast)


Lesenswert?

ok danke für die vielen hilfen
is schon dämlich, kann avrs proggen aber schalter nicht richtig
anschließen...
nun dann wieder was gelernt
nun möchte ich ein lcd ansteuern, aber mit einem 8515
mal gucken ob es klappt

bis dann

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.