ich möchte mit atmege16 ein besimtes bitmuster ausgeben also 1us ein, 1ms aus 4s ein 1us aus 14s ein ..... wie ist das am besten zu realisieren ? ich versuche es mit verschachtelten schleifen also so: ldi zaehlreg3, anfangswert zeitschleife4: ldi zaehlreg2, anfangswert zeitschleife3: ldi zaehlreg, anfangswert zeitschleife2: dec zaehlreg brbc 1, zeitschleife2 dec zaehlreg2 brbc 1, zeitschleife3 dec zaehlreg3 brbc 1, zeitschleife4 aber ich kann mir nicht vorstellen das daß der elleganteste weg ist.
Schau mal ins Datenblatt von deinem "atmege16" dort findest du bestimmt einen Eintrag "Timer", im AVR-GCC-Tutorial hier findest du dazu auch infos. Den timer stellst du dir schön schnell ein und im timer arbeitest du dann deine zeit-werte ab indem du ein zählregister hast das bis zu einen bestimmten Zeitwert zählt (wenn dein Timer zB mit 40000 Hz läuft und du 2 sekunden warten willst dann zählt er halt bis zu einen Zeitwert von 80000) und nachdem dieser wert erreicht ist führst du eine Aktion aus (zB einen port pin low setzen) und dann lädst du einen neuen Zeitwert und lässt das zählregister wieder bei 0 anfangen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.