Exakte Unterbrechungen in C

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 04 10 2024  13:24:03      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Exakte Unterbrechungen in C

    







BID = 73133

X-Plod

Neu hier



Beiträge: 25
Wohnort: Salzgitter
Zur Homepage von X-Plod ICQ Status  
 

  


Hallo

Für mein Script habe ich eine Funktion in C geschrieben, der man einen Parameter übermittelt und diese anhand des Parameters solange warten soll. Wenn ich zum Beispiel 250 übermittle, dann soll 250 ms gewartet werden. Wenn ich 1000 ms übermittele, wird eine Sekunde gewartet.
Am Anfang hats auch gut geklappt, nur nach einem Tag stimmte der Takt nicht mehr mit dem Sekundentakt meiner Funkuhr überein. Ich denke mal, dass mein C-Programm noch anderes Zeugs in dieser Funktion hat, welches unerwünschte Taktzyklen herbeiruft (Die Vergleiche,...). Ich wollte jetzt diesen Programmteil in Assembler schreiben. Damit kenn ich mich jedoch gar nicht aus und bitte deshalb um Hilfe. Kann mir das jemand in Assembler schreiben? Nur diesen kleinen Teil. WÄre echt nett! Ich habe ein 10 MHz Oszi. Es soll halt eine Zahl übermittelt werden und soviele ms Sekunden gewartet werden.

Dankeschön!
mfg

BID = 73136

Jornbyte

Moderator



Beiträge: 7149

 

  

Wie übergibst du den Wert? Über den Stack oder Register, wenn Register - welche? Was haste für einen Proz im Einsatz?
Wieviele fragen sind noch offen??

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 73137

X-Plod

Neu hier



Beiträge: 25
Wohnort: Salzgitter
Zur Homepage von X-Plod ICQ Status  

Gut, sorry.....

Hab einen ATmega8
Übergebe den Wert in ein Register -> r16


BID = 73170

Benedikt

Inventar

Beiträge: 6241

Wie groß ist denn dei Abweichung ? Kann es sein, dass es an der normalen Quarztoleranz (bis zu 200ppm) liegt ?

BID = 73216

X-Plod

Neu hier



Beiträge: 25
Wohnort: Salzgitter
Zur Homepage von X-Plod ICQ Status  

Die Abweichung war gut eine halbe Minute!

BID = 73346

Jornbyte

Moderator



Beiträge: 7149

So, da ist die Warteschleife für 1 ms in ASM mit übergabe des Wertes in R16.

ldi R17, $20
LOOP0: ldi R18, $64
LOOP1: dec R18
brne LOOP1
dec R17
brne LOOP0
ldi R17, $20
dec R16
brne LOOP0

Nur an einer Stelle muss ich die Hände heben. Es ist mir in 30 Jahren unter ASM noch nicht ein mal gelungen eine Zahl >255 in ein 8 Bit Register oder anderen Speicher zu packen.



_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.


Zurück zur Seite 1 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 19 Beiträge im Durchschnitt pro Tag       heute wurden bisher 5 Beiträge verfasst
© x sparkkelsputz        Besucher : 182123161   Heute : 2458    Gestern : 5915    Online : 592        4.10.2024    13:24
9 Besucher in den letzten 60 Sekunden        alle 6.67 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0303580760956