Forum: Mikrocontroller und Digitale Elektronik Schleife/SPI Konfig/Taktfreq


von Matthias (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Ich möchte gern eine PWM Ausgabe über ein Schieberegister realisieren.
Zunächst reicht es mir aus, wenn alle 8 Ausgänge mit dem gleichen PWM
Signal angesteuert werden. Dazu verwende ich zwei Makros zum Ausgeben
der Zustände ON und OFF über das SPI Interface, die ich über Schleifen
entsprechend zeitlich einstellen will.

Bei folgender Schleife zur Zeitverzögerung habe ich ein Problem,
da nicht nach 3 Durchläufen, wenn das Z Bit eigentlich gesetzt
werden würde, aus der Schleife herrausgesprungen wird.
Hat dafür vielleicht jemand eine Erklärung?

CLR R17
zaehl1:
  LDI R17, 0b00000011
  ON
  DEC R17
  BRNE zaehl1

Mit den folgenden Zeilen möchte ich das SPI Interface meines ATMega16
konfigurieren:

LDI mp, 0b01110000 ;
OUT SPCR, mp ;SPI Control Register
LDI mp, 0b00000001
OUT SPSR, mp ; SPI Status Register

Was ich nicht ganz nachvollziehen kann, ist das bereits nach der
Ausführung der 4. Zeile davon der Data Ausgang des SPI Interface
(PB5) auf High geht... Im SPI Status Register möchte lediglich Bit 0
setzen um die maximale SCK Frequenz von fsck=fosc/2 einzustellen.

Ich habe noch eine weitere Frage zum AtMega16 in Verbindung mit
einem STK500. Kann ich auch irgendwie eine höhere Oszillatorfrequenz
als 3.868MHz einstellen? Denn in den Board Options ist dies die höchste
vorgegebene einstellbare Freuqenz...

Vielen Dank,

Gruß Matze

von Der inoffizielle WM-Rahul (Gast)


Lesenswert?

>Kann ich auch irgendwie eine höhere Oszillatorfrequenz als 3.868MHz
>einstellen?

Nur mit einem externen Quarz (-Oszillator).

Zum Programmproblem kann ich nichts sagen (keine Ahnung von ASM...).

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.