Okay, ich hab den Code einmal überflogen.
Was mir hierbei auffällt sind die folgenden Dinge:
- Die folgende Sequenz hatte durchaus seinen Sinn.
Damit wird das JTAG Interface des Mikrocontrollers deaktivert. Welches, sollte man dieses bei den FUSE Bit Einstellungen vergessen mal eben den kompletten PORT C blockiert.
Code:in temp, MCUCSR ; Disable JTAG Interface ori temp, (1<<JTD) out MCUCSR, temp out MCUCSR, temp- Die Assemblerdirektive .CSEG heisst das die nachfolgenden Zeilen im Codesegment abgelegt werden (FLASH).
Weitere Möglichkeiten sind .DSEG und .ESEG
Genauere Infos findest du in der AVR Studio Hilfe.- Beim Einsprung in eine Interupt Routine sollte immer das folgende auf den Stack wandern[list:833f66c656]
- Alle Register die sonst noch im Programm verwendet werden,
- das Statusregister SREG
Sicherlich erscheint es in diesem Fall unnötig, allerdings sollte man es sich schon angewöhnen diese zu sichern, da es sonst bei Programmerweiterungen schnell zu unerwünschten Nebeneffekten kommen kann.
[*]Nicht belegte Pins sollte man auf einen definierten Pegel ziehen. Ich habe mir angewöhnt, diese als Eingang mit internem Pullup zu schalten.
Der Grund ist unter anderem der jene, das man damit unerwünschte Pinwackeleien vermeidet.
[*]Du initialisierst mit deinem Code eine Hardware PWM, also das genaue Gegenteil von dem, was ich dir in diesem Beispiel aufgezeigt habe.
Dieses ist an und für sich nicht schlimm, es ist sogar der zu bevorzugende Weg, wenn man nur 1-4 PWM's benötigt und die entsprechenden Pins am ATmega noch frei sind (OC0, OC1A, OC1B, OC2).
Das Problem bei dir ist allerdings darin, das du diese Hardwaregenerierte Pulsweitenmodulation im µC behältst und nicht ausgibst.
Mit deinem Code generierst du sicherlich eine PWM an jedem beliebigem PIN, allerdings erscheint mir der Aufwand dafür etwas übertrieben.
Auch denke ich, das du damit bei gewissen Werten saubere Rechteckimpulse mit 50% Puls Pausenverhältniss generierst.[/list:833f66c656]
So, das war ein kleiner Auszug aus 'Hannis aktueller Meckerstunde' ich hoffe du nimmst es mir nicht übel.
Grüße,
Hanni.
Lesezeichen