www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Atmega 16 Inputs reagieren nicht


Autor: Tobias S. (tryan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich arbeite mit Pollin-board + Addon-board und die Programme schreibe 
ich mit Bascom und übertrage die .hex datei mit PonyProg.
Die Programme kommen auf einen ATmega16

Jetzt zum problem: Ich schaffe es einfach nicht die Inputs zu 
Aktivieren!
Wenn ich schreibe;

&regfile= "m16def.dat"
---------------------
Config PortA = Output
Config PortB = Output
Config PortC = Output
Config PortD = Output
---------------------
Do
 PortA = &B11111111
 PortB = &B11111111
 PortC = &B11111111
 PortD = &B11111111
Loop
end


Leuchten alle Leds  wie es sein soll.
Ich hab sogar ein ADC von PortA zulaufen und zum anzeigen gebracht.

Aber wenn ich z.b. schreibe

&regfile= "m16def.dat"
---------------------
Config PortA = Input
Config PortB = Output
Config PortC = Output
Config PortD = Output
---------------------

Do
 If PortA.0 = 1 Then PortD.0 = 1
loop
end

Der yC reagiert einfach nicht auf Input Signale.
Und hab einfach keine Idee mehr. Ist der Atmega16 vielleicht defekt?
Aber dann würde das ADC doch nicht laufen oder?

Vielen Dank Tryan

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

Bewertung
0 lesenswert
nicht lesenswert
Wenn man das PORTx-Register ausliest, dann liest man immer genau das, 
was man vorher hineingeschrieben hat. Du solltest Dich mal näher mit dem 
Register PINx (wobei x für den Port steht) befassen.

Autor: Teplotaxl X. (t3plot4x1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der ADC hängt vor den Porttreibern (siehe Datenblatt). Die 
Digitaltreiber können gekillt sein, aber ADC wird immer noch 
Funktionieren.

PS: Bist du dir sicher, dass das Prorgramm funktioniert? (Lass es doch 
mal im AVRStudio Simulator laufen und setze die Eingangsregister)

Autor: Tobias S. (tryan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also im Simulator funktioniert das Programm:

Config Portc = Input
Config Portd = Output

'---------------------------------
'Hauptprogramm:
'---------------------------------
   Do

   If Portc.0 = 1 Then Set Portd.0
   If Portc.1 = 1 Then Reset Portd.0

    Loop
End

Und wenn ich die Digitaltreiber gekillt habe,könnte ich sie auch nicht 
mehr als Outputs benutzten oder, aber das geht ja....

Autor: Elbegucker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab zwar nie in Bascom programmiert, aber

Ausgänge werden mit PORTx abgefragt
Eingänge mit Pinx

Autor: Tobias S. (tryan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kann ich gerne Testen, aber ich glaube es ist egal ob man port oder 
pin schreibt.

lg

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

Bewertung
0 lesenswert
nicht lesenswert
Tobias S. wrote:
> Das kann ich gerne Testen, aber ich glaube es ist egal ob man port oder
> pin schreibt.
Dann schmeiß BASCOM gleich weg und besorg Dir was Vernünftiges. 
Allerdings halte ich es für eher unwahrscheinlich, dass BASCOM da intern 
überhaupt keinen Unterschied macht.

Autor: Markus F. (civicbcc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es ist definitv nicht egal ob du port oder pin schreibst.

der kollege hier hatte gestern erst das selbe problem:

Beitrag "dual led mit bascom"

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Simulator hält Dich in diesem Fall zum Narren.

So zum Bleistift:

If PIND.5=0 then
PORTD.6=1

MfG Paul

Autor: Tobias S. (tryan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okey, hier habt recht man muss zwischen PIN und PORT unterscheiden. 
Vielen dank für eure Hilfe!!!!

Lg

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.