www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega32 Problem


Autor: Mark (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich bin Neuling im Bereich AVR Programmierung und habe folgendes 
Problem.
Wie in dem Schaltplan zu sehen ist, habe ich eine ATMEGA32 beschaltet.

Mein Bascom Source :

$regfile = "m32def.dat"
$crystal = 4000000
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40

Mcusr = &H80   'disable JTAG
Mcusr = &H80   'disable JTAG

Config Porta = Input        'Configure Port A as Input
Config Portb = Output       'Configure Port B as Output

Dim Status As Bit

Do

   If Pina.0 = 1 Then
      Status = 1
   End If

   If Pina.1 = 1 Then
      Status = 0
   End If

   If Status = 1 Then
      Portb.0 = 1
   End If

   If Status = 0 Then
      Portb.0 = 0
   End If

Loop

End


Mein Problem ist nun, dass sich die LED nicht ein und Ausschalten lässt.
Ein festhalten der Taster bringt auch nix.

Habe ich nun nen Denkfehler, ist meine Schaltung Falsch oder liegts am 
Code ?

Grüße

Mark

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1.: Die Taster sind Low-aktiv, Taster gedrückt -> "0" am Portpin
2.: VCC hat an AREF nichts verloren (was aber auf das aktuelle Problem 
keinen Einfluss hat)...
3.: externe Pull-Up-Widerstände sind bei AVRs witzlos. Der Mega32 hat 
interne Pull-Ups, die man nur aktivieren muss.

Autor: Mark (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie aktiviere ich in Bascom die internen Pullups ?

in C wäre es ja

DDRA = 0x00       // Configure PortA as Input
PORTA = 0xFF      // enable PortA internal Pullups


Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz blöde Frage: Wenn Du C kannst, warum wurschtelst Du dann mit 
basskomm rum?

Abgesehen davon kann ich Dir mit BASCOM leider nicht viel weiterhelfen. 
Es müsste aber auch in BASCOM die Möglichkeit geben, entweder irgendwo 
ein "Schlüsselwort" wie "Pullup" anzubringen oder auf die Portregister 
zuzugreifen, oder sehe ich das falsch?

Autor: Mark (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja ich kann halt besser Basic Programmieren wie C.

Autor: Joerg Wolfram (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
versuchs mal mit

   If Pina.0 = 0 Then
      Status = 1
   End If

   If Pina.1 = 0 Then
      Status = 0
   End If

da Deine Taster LOW-aktiv sind.

Gruß Jörg

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.