Auf 64Bit Plattformen ist in der Regel ein Int 32Bit groß. Macht man damit Pointerarithmetik muss die 32Bit Zahl erst zu eine 64Bit zahl convertiert werden, bevor sie verrechnet wird. Pointer sind auf 64Bit Plattformen auch 64Bit groß. Durch den Einsatz von size_t statt int und ptrdiff_t statt int* lässt sich das verhindern. Siehe http://www.viva64.com/en/a/0050/ […]
26.03.2012
06.09.2011
example to change the base instance of a derived object
Man hat ein Array von Objekten einer abgeleiteten Klasse. Da new[] nur den Default Konstruktor aufruft, kann man keine schon existierende Instanz der Basisklasse mitgeben. Folgender Code zeigt, wie man die Basisinstnaz nachträglich ändern kann. // example to change the base instance of a derived object #include < iostream > using namespace std; class rawData […]
07.08.2011
04.04.2011
Etwas über C, Assember und Performance
Angenommen, ihr habt folgenden Code int main() { int i = 0; for(; i < 255; i++) { if(i != 10) printf("a"); else printf("b"); } return 0; } Angenommen, man ändert if(i != 10) zu if(i == 10). Läuft der Code schneller? Bei diesem Beispiel: Nein. Ich habe mir den erzeugten ASM Code ausgeben lassen […]
11.03.2011
Servocontroller
Mein Servocontroller ist online. Mehr zu lesen gibts hier Servocontroller
25.02.2011
Datenhandschuh: Die Verbindung mit dem PC steht
Heute habe ich den Operationsverstärker an einem Mikrocontroller angeschlossen, der das Signal an den PC schickt. Damit sind drei, einzel entwickelte Komponenten miteinander verbunden. Und es funktioniert zufriedenstellend :) Der Mikrocontroller, ein alter ATmega8, besitzt ein 10bit ADC mit interner 2.56V Referenzspannung. Neuere Typen kommen auch bis auf 1.1V runter. Aber für den Prototyp lange […]
14.02.2011
OpenCV death (hot) Pixel im Bild entfernen
Da meine ca. 11 Jahre alte Webcam mitlerweile ein paar kaputte Pixel hat, die einfach nur weiß sind, habe ich mir überlegt was man dagegen tun kann. Eine Möglichkeit wäre, die Pixel zu erkennen und durch den Median der umliegenden Pixel zu ersetzten. Um die Pixel zu erkennen macht man einfach ein paar Aufnahmen im […]
27.01.2011
OpenCV Mittelwert der Farben in einem Video
Schaut euch mal dieses geniale Video an http://www.youtube.com/watch?v=NtoYuwmTzt0 Wird das Video nicht zwischendrin irgendwie blasser? Es kommt mir gerade so vor. Hmmm man könnte ja mal die Farben analysieren. Also jedes einzelne Frame in den HSV (H Farbwert, S Sättigung, V Wert) umrechnen, den Mittelwert über alle Pixel bilden und dann grafisch auftragen. Gesagt, getan. […]
20.01.2011
C freien Speicher ermitteln
Das Zauberwort heisst sysinfo. // Um den freien RAM zu bestimmen #include < sys/sysinfo.h > struct sysinfo meminfo; if(sysinfo(&meminfo) != 0) perror("Kann keine RAM Infos auslesen"); printf("mem total %i\n" ,meminfo.totalram/1024/1024); free memory usage
10.12.2010
C/C++ eine static Variable liegt im Heap
Eine statische Variable liegt im Heap, statt auf dem Stack. Das erklärt auch, warum das Programm meines Chefs funktionierte, nachdem er vorsorgshalber alle 200 Variablen im Datapool als static deklarierte. Der Stack ist nur einige MB groß (Wie groß genau? Infos suchen!). Fordert man ein entsprechend großes Array an, stürzt das Programm ab. Gefunden im […]