www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega32 spinnt rum


Autor: Blinky B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle,

ich hoffe ihr könnt mir helfen..also erstmal zu den Kenndaten
Pollin Board
ISP programmer(auf dem pollin board)
compiler avr studio 4
kommunikation ponyprog
uc Atmega32

also ich habe das testprogramm von pollin draufgeladen, welches zwar
funktioniert jedoch rumspinnt.
Auch bei eigenen Programmen scheint der Atmega32 rumzuspinnen.
Er reagiert oftmals nicht bei Tastendruck und wenn er reagiert kommt es
auch ab und zu vor, dass er die falsche Led ansteuert. (im Testprogramm
und eigenen testroutinen)

Wisst ihr vllt woran das liegen kann???

Kann eine nicht korrekte Tastenentprellung dafür sorgen, dass eine
falsche LED angesteuert wird?? Sprich der falsche Port auf HIGH gesetzt
wird? Oder liegen die Gründe wo anders?
Beitrag melden | Bearbeiten | Thread löschen | Markierten Text zitieren 
| Antwort | Antwort mit Zitat

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alexander Herfurtner schrieb:
> Wisst ihr vllt woran das liegen kann???

am nichtvorhandenen Programm?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Warum 2 x?

Beitrag "Einfaches Blinklicht??"

MfG Spess

Autor: Blinky B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe den anderen beitrag gelöscht, da der betreff nicht richtig 
war...sorry;(

Autor: Blinky B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#include <stdint.h>
#include <avr/io.h> 
#include <avr/interrupt.h>



int main(void)

{




//PORTD
DDRD =(1<<PD6)|(1<<PD5); // PD5 und PD6 Ausgang
PORTD = 0x00; 


   while(1)
   
   {  
   
           if ((PORTD & (1<<PD2)) == (1<<PD2))
        {
      while((PORTD & (1<<PD2)) == (1<<PD2))
      {}
       
         if ((PORTD & (1<<PD5)) == (1<<PD5))
           {
           PORTD &= ~(1<<PD5);
          }
        else
        {
           PORTD |= (1<<PD5);
        }

      }
        


   }                        


 
  


return 0;
}

Also hier kommt es vor, dass auch die 2. LED (PD6) aufleuchtet. Außerdem 
reagiert der ATMEGA32 nicht jedes mal auf den Tastendruck

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alexander Herfurtner schrieb:
> Außerdem
>
> reagiert der ATMEGA32 nicht jedes mal auf den Tastendruck

Welche Taste?

mfg.

Autor: Blinky B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Taste 1 --> PD2
LED 1 --> PD5
LED 2 --> PD6

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alexander Herfurtner schrieb:
> Taste 1 --> PD2

Dann musst du den Port aber auch lesen!
>if ((PORTD & (1<<PD2)) == (1<<PD2))

Das Lesen des Portpins macht man nicht mit PORTx, damit liest man das 
Portregister, sondern mit PINx.

Deswegen hat so mancher in seine Tastatur gebissen.

mfg.

Autor: Blinky B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh man!
werd's sofort ausbessern!
aber für Schreibvorgänge nutzt man PORT oder?

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja

Autor: Blinky B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
okai funktioniert=)!

danke euch!

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
unter I/O Ports, Seite 49, im Datenblatt ist die Architektur gut 
dargestellt

Autor: Blinky B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin schrieb:
> unter I/O Ports, Seite 49, im Datenblatt ist die Architektur gut
> dargestellt

danke!

Autor: Martin Vogel (oldmax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
Noch ein kleiner Tip. Du kannst dir den Umweg über Ponyprog sparen, wenn 
du dir einen USB-ISP- Progger zulegst. Gibt's in der Bucht für ca.20 €. 
Vorteil, 1. Der besagte Umweg
2. vieeel schneller
3. freier Comport. Z. B. um mit OpenEye die Variableninhalte aus dem 
Controller zu lesen. OpenEye ist von mir und ist eigentlich für 
Assemblerprogramme zugesschnitten. Wenn du dir aus C ein 
Assemblerlisting erstelen kannst, wird's auch funktionieren. Du findest 
es hier irgendwo. Such einfach nach OpenEye.
Gruß oldmax

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin Vogel schrieb:
> Gibt's in der Bucht für ca.20 €.

Kauf dir bloß nicht so einen Billigscheiß.

AVRISP MKII und sonst gar nichts.

mfg.

Autor: Blinky B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
okai ich danke euch für eure Tipps! sehr aufmerksam=)

und den usb progger werde ich mir denke ich mal zulegen, jedoch 
später...denke für das kleine projekt wird der isp progger von pollin 
reichen..denke die programme werden nicht allzu groß!

gruß

alexito

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.