Der ATMEGA 8 ist aber drin.Zitat:
Leider ist der 16MHz-Controller nicht eingetragen
Die Fuses sind bei der 8Mhz Variante und der 16MHz Variante gleich.
Druckbare Version
Der ATMEGA 8 ist aber drin.Zitat:
Leider ist der 16MHz-Controller nicht eingetragen
Die Fuses sind bei der 8Mhz Variante und der 16MHz Variante gleich.
Danke wkrug für die Info. Das hab ich mir auch schon gedacht, weil das Datenblatt für beide Controller ja auch gleich ist.
Ich habe bisher noch das Problem mit der Übertragung vom PC auf den Controller.
Wenn es nicht funktioniert, muß ich den ISP-Stecker an meinem Testboard abziehen, das PonyProg neu starten und den ISP-Stecker wieder draufstecken.
Ich habe mich für die 10polige Variante entschieden und die GND-Pins länger als die Signalpins gelassen, damit ich mir nicht beim Stecken unter Spannung (bin in dieser Hinsicht etwas faul) durch diverse Ausgleichsströme etwas zerschieße.
Wenn ich das Datenblatt richtig interpretiere, sollte ein interner Takt von 8MHz bzw. 16MHz möglich sein.? Das habe ich durch verstellen der Bits CKSEL0...3 noch nicht hinbekommen. Ab 4 MHz geht bei dem Controller nichts mehr.
Anhand der doppelt so schnell blinkenden LED sehe ich, daß ich die Bits richtig eingestellt haben sollte.
Gruß Gucky. :wink:
Hallo,
nach mehreren Testaufbauten einem neuen ATmega8 und einem selbstgebauten seriellen Programmieradapter mit 2x MAX232 habe ich nun meine ersten Erfahrungen gemacht.
Ich habe PortB mit Leuchtdioden bestückt, die ich mit verschiedenen Programmen leuchten lassen kann. (Lauflicht, Blinklicht...)
Nun wollte ich ein paar Schalter an PortD anschließen und die Schalterpositionen auf PortB ausgeben. Die Schalter schalten +5V, das Port selber habe ich mit PullDowns (3,3K) nach 0V gelegt. Dazu habe ich mehrere kleine Programme geschrieben, wovon das unten abgebildetet das letzte ist.
Ich habe es bisher nicht geschaft, die Schalterstellungen entsprechen anzuzeigen.
Kann mit jemand sagen, was ich falsch mache ?
Gruß Gucky. O:)
************************************************** *************************
.include "m8def.inc" ; Definitionen für ATmega8
.org 0x0 ; Reset-Vektor
rjmp Reset ;Reset Handle
;************************************************* **************************
.org 0x13
Reset: ldi r16, low(RAMEND) ;init stack to pointer to RAMEND
out spl, r16
ldi r16, high(RAMEND)
out sph, r16
ldi r16, 0xff ;configure PORTB as output
out ddrb, r16
out portb, R16 ; Alle Bits von PortB setzen = alle LED's aus
;ldi r16, 0x00 ; Port C als Eingang konfigurieren >???
;out ddrd, r16
wait2: in r16, portd ; Inhalt vor PortD nach R16
out portb, r16 ; und auf PortB ausgeben
rjmp wait2
Um den Eingangsstatus zu lesen, muss PINx und nicht PORTx abgefragt werden.
Danke uwegw.
Hab ich gerade probiert und funzt.
Muß ich die Ports nach einem Reset mit z.B. "out ddrx, r16" als Eingang definieren, oder passiert dieses beim Reset automatisch ?