PWM-Ausgang im Hintergrund?
Moin moin!
Muss mich mal kurz online freuen, hab heute mein STK500 bekommen, von Farnell Elektronik.
*FREU*
Rein optisch kriegt man schon mal was fuers (viele) Geld, bei mir lagen ausserdem zwei AVRs mit drin (8515 und ATMega16), find ich richtig nett.
Aber ich haette da noch mal ein paar Fragen zu AVRs generell: Im Datenblatt steht ja immer, wie schnell man die Dinger betreiben kann, also was fuer Quarze man anschliessen kann. Aber viele AVRs haben ja auch einen internen Timer. Hat dieser interne Timer immer 1 MHz oder gibts auch schnellere? Zum Beispiel hab ich einen ATMega8-16PC. Steht die 16 da fuer die 16 MHz, die er laut Datenblatt maximal kann oder dafuer, dass er mit dem internen Quartz 16 MHz macht?
Als Anwendung sollen auf meinem AVR mehrere digitale Regelungen laufen, einmal PI und zweimal P. Diese drei Funktionen werden per Timer-Interrupt aufgerufen, um eine konstante Abtastzeit zu haben. Messgroessen kommen als PWM-Signale an, dazu wuerde ich die beiden Interrupt-pins und den Input-Capture-Pin nehmen.
Die Ausgaenge der drei Regler und zwei weitere Ausgangssignale solle ebenfalls PWM sein, aber wie kriege ich das nun hin? Die Ausgaenge sollen eine Refreshrate von mindestens 50 Hz haben und recht genau sein. Wenn ich den AVR mit 16 MHz betreibe, waere ein ASM-Befehl ja etwa 0,06 us lang, also sind Aufloesungen im Mikrosekundenbereich theroetisch moeglich. Aber wie lasse ich die Ausgaenge "parallel" zur sonstigen Programmbearbeitung laufen? Ich kann ja schlecht fuer jeden Ausgang eine Funktion mit Timer-Interrupt schreiben, die dann jeweils einen Puls der gewuenschten Laenge ausgibt, oder? Weil es doch nur zwei Prescaler fuer den Timer gibt...
Ausserdem soll noch ein Schrittmotor angesteuert werden, zwar nicht schnell, aber auch so "im Hintergrund", dass die Regelungen ungestoert weiterlaufen.
Hat jemand ne schlaue Idee?
Nils
tolle ide mit debuggen und so
der post is zwar schon älter, und ich bin ein absoluter mc newbie (hab' noch nich mal einen). bis jetzt bin ich noch dabei alles mit software zu simulieren!
Ich binutzte als ide dazu AVRSide und AVRStudio 4.09 und zu kompilieren benutzte ich winavr. wenn man winavr einfach in das standartverzeichniss installiert (was ich ja nicht so mag) klappt alles auf anhieb. Mann kann dann sogar den softwaredebugger aus AVR studio benutzen und zwar folgendermaßen:
neues projekt erstellen
in projekt/options/compiler das häkchen bei AVRStudio debugger files machen
project/build (damit werden auf diese seltsamen debugfiles für avrstudio generiert)
und zu guter letzt muss man noch die .cof datei die nun im projektverzeichnis liegt in AVR studio öffnen.
jippie, hoffe habe jemandem geholfen.
grüß Benjamin