11-09-2006, 21:21
[quote name='DarkSoul' post='11345' date='11.09.2006 - 17:29']... Die Hardware selber läuft jedoch mit 6MHz - heisst also das sie 6Millionen Mal pro Sekunde (!) die einzelnen Lichtschranken oder Reedkontakte abfragt.... Leider habe ich nur zur Zeit ein kleines Problem bei der Programmierung und suche jemanden der sich mit Visual Basic.NET möglichst gut auskennt und mir bei einem Problem mit Threads weiterhelfen kann...[/quote]Hallo Carsten,
prinzipiell hast du Recht, dass der µC - vernünftige Programmierung vorausgesetzt - keinen Impuls verpasst. Allerdings ist er nicht ganz so schnell, wie du angenommen hast.
Wenn die Dinger sich in den letzten Jahren nicht grundzätzlich geändert haben, spielt sich das Ganze etwa wie folgt ab:
Die 6 MHz sind der Grundtakt, die den µC am Laufen halten. Je nach Befehl werden mehrere Grundtakte benötigt und die entsprechende (Interrupt-)Routine besteht auch noch aus einigen dieser Befehle. Dadurch hat der arme Prozessor doch noch ne Menge zu tun, so dass er dann in den Bereich der 1/1000tel Genauigkeit kommt, mit der er einzelne Ereignisse sicher auseinander halten kann.
Das ist nicht zu verwechseln mit der langsameren Übertragungsgeschwindigkeit. Da ist mehr Aufwand für das USB-Protokoll zu betreiben und der PC hat ja noch mehr zu tun. Die Thread-Programmierung beim PC ist zu vergleichen mit der Interrupt-Programmierung im µC. Da läuft was unauffällig und i.d.R. schnell im Hintergrund und versendet anschließend Nachrichten z.B. an eine GUI, die die grafische Oberfläche versorgt.
Die Thread-Programmierung beim microsoft-Net.Framework selbst kenn ich nicht. Allerdings bietet microsoft ne Menge Hilfen an. Eine gute Idee ist, du schaust mal direkt auf den Entwicklerseiten von microsoft Germany nach, z.B.: [url="http://www.microsoft.com/germany/msdn/library/net/vbnet/ThreadingaspektePerformanceKontraSicherheit.mspx?mfr=true"]Threadingaspekte - Performance kontra Sicherheit[/url] und [url="http://www.microsoft.com/germany/msdn/library/net/MultithreadingproblemeBeiOberflaechen.mspx?mfr=true"]Multithreadingprobleme bei Oberflächen[/url].
Hoffe, das nützt
.
ciao
michael o.
prinzipiell hast du Recht, dass der µC - vernünftige Programmierung vorausgesetzt - keinen Impuls verpasst. Allerdings ist er nicht ganz so schnell, wie du angenommen hast.
Wenn die Dinger sich in den letzten Jahren nicht grundzätzlich geändert haben, spielt sich das Ganze etwa wie folgt ab:
Die 6 MHz sind der Grundtakt, die den µC am Laufen halten. Je nach Befehl werden mehrere Grundtakte benötigt und die entsprechende (Interrupt-)Routine besteht auch noch aus einigen dieser Befehle. Dadurch hat der arme Prozessor doch noch ne Menge zu tun, so dass er dann in den Bereich der 1/1000tel Genauigkeit kommt, mit der er einzelne Ereignisse sicher auseinander halten kann.
Das ist nicht zu verwechseln mit der langsameren Übertragungsgeschwindigkeit. Da ist mehr Aufwand für das USB-Protokoll zu betreiben und der PC hat ja noch mehr zu tun. Die Thread-Programmierung beim PC ist zu vergleichen mit der Interrupt-Programmierung im µC. Da läuft was unauffällig und i.d.R. schnell im Hintergrund und versendet anschließend Nachrichten z.B. an eine GUI, die die grafische Oberfläche versorgt.
Die Thread-Programmierung beim microsoft-Net.Framework selbst kenn ich nicht. Allerdings bietet microsoft ne Menge Hilfen an. Eine gute Idee ist, du schaust mal direkt auf den Entwicklerseiten von microsoft Germany nach, z.B.: [url="http://www.microsoft.com/germany/msdn/library/net/vbnet/ThreadingaspektePerformanceKontraSicherheit.mspx?mfr=true"]Threadingaspekte - Performance kontra Sicherheit[/url] und [url="http://www.microsoft.com/germany/msdn/library/net/MultithreadingproblemeBeiOberflaechen.mspx?mfr=true"]Multithreadingprobleme bei Oberflächen[/url].
Hoffe, das nützt
ciao
michael o.
ciao michaelo
... und wer zuletzt aufgibt gewinnt.
... und wer zuletzt aufgibt gewinnt.

