Forum: Mikrocontroller und Digitale Elektronik ATMega32 und das STK500


von Charlie_Day (Gast)


Lesenswert?

Hallo liebes Forum,

Nun ist es soweit, auch ich bin am Verzweifeln und weiß einfach nicht 
mehr weiter!
Ich habe mir das STK500 gekauft und dazu den ATMega32,  da dies auch der 
uC ist den wir in der Uni zum „lernen“ benutzen.

Ich benutze AVR Studio 6.2 (aktuellste Version)
Diamex –AVR ISP Programmer

Das Problem:
Die Fuse-bits habe ich einfach mal so übernommen von denen aus dem 
Uni-Labor (Da funktioniert alles) Allerding arbeitet mein uC mit dem 
STK500 Board Takt in der Uni ist ein Quarz mit 16MHz drin.
Ich kann mein uC Flashen und Programmieren, das ist kein Problem! ABER 
sobald es um Bedingungen geht wie z.B. eine IF abfrage oder Switch-Case 
etc. Funktioniert es nicht bzw. er macht völlig eigene Sachen die mit 
absolut unerklärlich sind.
Ein einfaches Programm zur erklärung
  if (PINB==1)
    {
      PORTD = 0b11111111;
      Wartefunktion
      PORTD = 0b00000000;
      Wartefunktion (aufruf zu einer anderen Fkt..)
    }
    else
    {
      PORTD = 0b11111111;
    }
Ich möchte ein Blinken  realisieren wenn ich meine Taste 0 drücke! 
Ansonsten sollen die LED`S aus sein !
Hier ist es so:  Er Blinkt einfach immer und wenn ich Taste 0  drücke 
gehen alle aus, und wenn ich etwas in der else-fkt. Ändere, dann führt 
er es bei Tastendruck aus , muss es nicht anders herum sein ?!?!
Das ist aber nur ein GANZ kleiner Teil von dem was er macht, was er aber 
nicht machen soll.
Wichtig… Die Programme sind Fehlerfrei, wie gesagt ich kann jederzeit 
ins Labor meiner Uni und dort auf dem ATMega32 funktionier alles. Ich 
habe auch oft das Gefühl das die PORTS nicht richtig angesprochen 
werden, normal muss man ja die Ausgänge negieren aufgrund der 
Ansteuerung über die Pullup Widerstände … aber auch dies ist bei meinem 
Board nicht IMMER der Fall, also mal ja aber mal nein ?! (z.b. bei einem 
Binärcounter, bei jedem drücken einer Taste soll er einen Counter um 1 
erhähen und über die 8 LEDS ausgeben z.b. PORTC= ~Cnt; und egal wo ich 
was eingebe..und ja ich habe einfach alles Probiert..ich bekomme die 
LED`S nicht aus, sie sind dauerhaft an.)

Habt ihr eine Idee wo ich am besten anfangen sollte zu suchen ? oder wo 
der Fehler liegen könnte, dass mein uC mit einem Programm etwas völlig 
anderes macht als ein andere aber gleicher uC mit dem selben Programm ?

MFG

von MWS (Gast)


Lesenswert?

Musst Dir halt mal das DB des STK500 anschauen, dann merkst Du, dass die 
Taster Pullups besitzen und nach GND schalten. Somit wird PINB==1 
normalerweise nicht wahr, bzw. drück doch mal alle Taster außer SW0, 
dann blinkts ;D

von Paul Baumann (Gast)


Lesenswert?

Warte bis Montag, ziehe den Atmega32 aus Deinem STK500, stecke ihn
in die Zigarettenschachtel und gehe zur Uni. Stecke ihn dort in das
STK500 der Uni.

Geht es nun vernünftig?
Nein -> DEIN STK500 bzw. die Installation von DEINEM AVR-Studio
hat eine Macke

>Die Programme sind Fehlerfrei, wie gesagt ich kann jederzeit
>ins Labor meiner Uni und dort auf dem ATMega32 funktionier alles.

Flashe DEINEN Atmega32 dort in der Uni und gucke, ob er sich richtig
verhält.

Falls ja, trage ihn wieder heim und stecke ihn, ohne etwas zu verändern,
zu Hause in Dein STK500. Geht es dann dort auch, hat das AVR-Studio 6.2
eine Macke.

MfG Paul

von MWS (Gast)


Lesenswert?

Paul Baumann schrieb:
> Warte bis Montag, ziehe den Atmega32 aus Deinem STK500, stecke ihn
> ...
> eine Macke.
>
> MfG Paul

Deine Posts werden mit immer dümmer und sind auch nicht lustig.

von Paul Baumann (Gast)


Lesenswert?

MWS schrieb:
> Deine Posts werden mit immer dümmer und sind auch nicht lustig.

Es muß nicht immer alles lustig sein, Du bist es zum Beispiel noch nie
gewesen.
WAS ist an der von mir vorgeschlagenen Methode falsch?

>> Warte bis Montag, ziehe den Atmega32 aus Deinem STK500, stecke ihn
Am Sonntag hat es wahrscheinlich keinen Sinn, zur Uni zu gehen...
Soweit reicht's bei Dir nicht, wie?

Paul

von Peter D. (peda)


Lesenswert?

Charlie_Day schrieb:
> if (PINB==1)

D.h. Du mußt 7 Tasten drücken, damit das wahr wird.

Schau mal in Tutorials, wie man einen einzelnen Pin einliest.

von MWS (Gast)


Lesenswert?

Paul Baumann schrieb:
> MWS schrieb:
>> Deine Posts werden mit immer dümmer und sind auch nicht lustig.
>
> Es muß nicht immer alles lustig sein, Du bist es zum Beispiel noch nie
> gewesen.

Ich seh's auch nicht wie Du als meine Aufgabe an, den Forumshanswurst zu 
machen.

> WAS ist an der von mir vorgeschlagenen Methode falsch?
>
>>> Warte bis Montag, ziehe den Atmega32 aus Deinem STK500, stecke ihn
> Am Sonntag hat es wahrscheinlich keinen Sinn, zur Uni zu gehen...
> Soweit reicht's bei Dir nicht, wie?

Das ist unter allen möglichen Sichtweisen einfach nur dämlich.

von Paul Baumann (Gast)


Lesenswert?

MWS schrieb:
> Ich seh's auch nicht wie Du als meine Aufgabe an, den Forumshanswurst zu
> machen.

Ja, dann laß es doch einfach. Niemand zwingt Dich.

von MWS (Gast)


Lesenswert?

Paul Baumann schrieb:
> MWS schrieb:
>> Ich seh's auch nicht wie Du als meine Aufgabe an, den Forumshanswurst zu
>> machen.
>
> Ja, dann laß es doch einfach. Niemand zwingt Dich.

Bist ein bisserl verständnisbefreit, nicht wahr?
Das liegt sicher an Deinem fortgeschrittenen Alter, Deine Witze werden 
halt genauso wie der Rest älter und entsprechend langweilig. Und wenn's 
dann tatsächlich mal nichtwitzig sein soll, wie hier offenbar, dann 
wird's endgültig zum Trauerspiel.

von Paul Baumann (Gast)


Lesenswert?

Ich glaube, es ist Zeit, eine Zeile in den IDIOTENFILTER des
Browsers einzutragen.

Manches streitsüchtige Pack muß man sich nicht mehr antun.

Schönen Sonntag noch...

Paul

von MWS (Gast)


Lesenswert?

Paul Baumann schrieb:
> Ich glaube, es ist Zeit, eine Zeile in den IDIOTENFILTER des
> Browsers einzutragen.

Pass auf, dass Du Dich nicht selbst einträgst. LOL

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.