-
Thread
Welche Programmiersprache auf µC
Wir befinden uns im Jahr 35 nach C. Die ganze Welt hat erkannt, dass eine gute Programmiersprache prozeduale, funktionale und objektorientierte Ansätze unterstützen sollte. Die ganze Welt? Nein, ein von unbeugsamen C Jüngern bevölkertes
auseinander zu setzen. Meines Wissens gibt es dazu bislang kein gute und umfassendes neues(!) Buch (alte zu TMP schon, aber die benutzen meistens noch alte Paradigmen wie SFINAE, ...).
-
Thread
Bare Metal Programm per U-Boot starten
Eine weitere Frage: In dem Doc steht: http://elk.informatik.hs-augsburg.de/tmp/elinux/u-boot.git/doc/README.standalone (Abschnitt 4) dass ist die Load bzw Start address für den ARM 0x0c100000 ist. Kann man die Application nicht eine anderen Adresse zuweisen?
${devicetree_image} ram 0x2A00000 0x20000\\;${ramdisk_image} ram 0x2000000 0x600000 ethaddr=00:0a:35:00:01:22 fdt_high=0x20000000 fdtcontroladdr=3ffa6ee0 fileaddr=2000000 filesize=62 gatewayip=192.168.150.1 importbootenv=echo Importing environment from SD ...; env import -t ${loadbootenv_addr}
-
Thread
Assembler (AVR) Freaks bitte: der schnellste Weg, einen ganzzahligen Wert zu skalieren? Gesperrt
mov r18,r24 ; value, value ldi r19,0 ; value sub r18,r30 ; tmp58, _9 sbc r19,r31 ; , _9 ldi r21,lo8(100) ; tmp60, mul r21,r18 ; tmp60, tmp58 movw r24,r0 ; tmp59 mul r21,r19 ; tmp60, tmp58
sub r30,r22 ; , min sbc r31,r31 ; ldi r21,lo8(100) ; tmp60, mul r21,r30 ; tmp60, tmp58 movw r24,r0 ; tmp59 mul r21,r31 ; tmp60, tmp58 add r25,r0 ; tmp59 clr __zero_reg__ sub r20
-
Thread
externer interrupt
naked */ /* frame size = 0 */ /* stack size = 0 */ .L__stack_usage = 0 ldi r24,lo8(-1) ; tmp43, out 0x5,r24 ; MEM[(volatile uint8_t *)37B], tmp43 reti /* epilogue start */ /* #NOAPP */ .size __vector_14, .-__vector_14 [/c]
= 0 ldi r24,lo8(-1) out 0x4,r24 out 0x7,r24 out 0xb,r24 in r24,0x35 ori r24,lo8(12) out 0x35,r24 /* #APP */ ; 32 "/home/lmeier/Projekte/wmucpp/doc/bmcpp99/bm99a.c" 1 sei ; 0 "" 2 /* #NOAPP */ ldi r24,lo8(-1) .L2: out 0x8,r24 ldi r30,lo8(3999
-
Thread
PT100 Zehntel Grad Auflösung
Wie wärs mit LMT70 (analog) oder TMP107 (digital). Beide recht genau und beim TMP107 kommt die Temperatur direkt digital raus.
Beitrag #4915539: > Habt ihr vielleicht andere Ideen um die genannte Auflösung zu erreichen? LM 35 und Co haben eine Auflösung von 10 mV/C° Und sind linear. Kurt
-
Thread
Horizon EDA [War: Neues, halbfertiges Elektronik-CAD-Programm]
nicht geplant, siehe Vortrag: https://www.youtube.com/watch?v=OpwMhz_3Tbs&feature=youtu.be&t=18m35s 18:35
clone https://github.com/carrotIndustries/horizon-test-project.git [/code] Starten: [code] $ ~/tmp/horizon/horizon-prj-mgr $ ~/tmp/horizon/horizon-pool-mgr [/code] Grüße, Ulrich
-
Thread
SDR-Dekoder für TFA KlimaLogg Pro/IT+ Temperatursensoren
Sender auf dem Display mit: r08 0056 XXXX (Kennung) Daten Rückseite ALT: 11/2016 V011 C2 ID: XXXX V35 ************************************************* .. die alten Sender melden sich mit: b35 0056 XXXX
Interesse hier ansehen: https://github.com/merbanan/rtl_433/pull/1319/commits/b85377c029c1dab1efa4806e35aa4ad96c1dc53c
-
Thread
Infrarot Empfänger "verschoben"
dann doch überschaubar auch der Rest ist überschaubar. Die Art der Fernbedienung ergibt sich aus tmp1 zu tmp2 [c] if(((tmp[1])/(tmp[2]/10))>7 && (tmp[1]/(tmp[2]/10))<13)//rc5 //tmp[1]/f_ir=10 f_ir=tmp[1]/10; if(((tmp[1])/(tmp[2]/10))>17 && (tmp[1]/(tmp[2]/10))<22)//nec f_ir=tmp[1]/102;
[c] ir_adr=0;ir_cmd=0; for(i=18;i>3;i=i-2) { ir_adr=(ir_adr<<1); if (tmp[i]/f_ir>11)ir_adr++;} ir_adr|=128; for(i=50;i>35;i=i-2) { ir_cmd=(ir_cmd<<1); if (tmp[i]/f_ir>11)ir_cmd++; } [/c] auch kein Zauberwerk.
-
Thread
Bitmanipulation beschleunigen
.-38 ; 0x334 <variant5_ohne_asm+0xe> 35a: 90 6f ori r25, 0xF0 ; 240 35c: 08 95 ret [/avrasm]
0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff }; register union{uint32_t L; uint16_t b[4];}u; uint8_t tmp; u.b[0]=lut0[tmp = in & 15]; u.b[1]=lut1[tmp]; u.b[2]=lut0[tmp = in >> 4]; u.b[3]=lut1[tmp]; return u.L; Die 32 Cycles schaffen wir damit aber nicht. Die Skip-Befehle haben es schon
-
Thread
SSD1306/1309 Library zum Darstellen von Text auf OLED Displays
's/^.* \([a-zA-Z0-9_]*_bits\).*$$/static const uint8_t \1[] __attribute__((progmem)) = {/' $< > $@.tmp && mv $@.tmp $@ [/pre] (Makefile-Schnipsel, Kommandos bitte mit <TAB> einrücken) Damit wird ein progmem-Objekt draus gemacht.
's/^.* \([a-zA-Z0-9_]*_bits\).*$$/static const uint8_t \1[] __attribute__((progmem)) = {/' $< > $@.tmp && mv $@.tmp $@ Schräg !!! :)
-
Thread
Rasterelektronenmikroskop Zeiss DSM 960
line_data = img_data[line:line+mean_interval].tolist() Saving wav.tiff c:\Users\Privat\Mikrokontroller\tmp [/c] Ob das Resultat ok ist, kann ich nicht beurteilen, aber das TIFF File sieht auf jeden Fall nach etwas aus.
unterscheiden sich nicht viel voneinander. Download link https://wetransfer.com/downloads/d35b0978795dc67a800dba01440a717720170528164622/5dc5e7cb585403ebd81b9da8c421748920170528164622/a4fa0a Den Schaltplan für den HV-Teil stelle ich auch rein. Vg Sunny
-
Thread
LED-Lampe reparieren
3W China-LEDs sind mir auch welche wegen Bonding-Fehler ausgefallen. Die 10W und 100W-LED-Module (35 oder 45mil Chips, jeder Kontakt über zwei parallelen Bonddrähten verbunden) sind mir auch nach mehreren Jahren nicht ausgefallen. Ich betreibe die 10W und 100W Module auch nur mit 1/3 bis 1/2 der
Mike J. schrieb im Beitrag #4891550: > Zum Beispiel der "Infrared Thermopile Sensor" TMP006B hat einen > Öffnungswinkel von 90°. Das wird wohl der Öffnungswinkel des "nackten" Sensors sein, mit einer Konvex-Linse davor wird der kleiner. Bei vielen Geräten wird auch das Öffnungsverhältnis
-
Thread
Ausrüstung für Mikrocontroller
USB-Treiber CH341 gebraucht, aber auch der ist fix zu finden. Der ChiNano komplett braucht hier um die 35mA. Wenn Du den Vorschlag von Arduino Fanboy umsetzt, sind Controller und USB eben zwei Platinen, lassen sich als Nano programmieren und handhaben, aber man kann Strom sparen, weil der USB nicht ständig
CP2101, FTDI ??? (Die CH34x haben sich zumindest bei mir sehr bewährt) RTC mit DS3231 oder DS3231M TMP101 Temperatursensor I2C 8xLED Treiber I2C LCD Schnittstelle. LM4232 VREF 2.5/3.0V Externes I2C EEPROM wie 2Mb AT25C Funktionierender Watchdog (Bootloader Mod.) ISP Programmierschnittstelle (Die
-
Thread
DTMF decoder
+t0; } int16_t GoertzelFilter(int16_t* DataArr, int16_t DataCnt, uint16_t Coeff) { int32_t tmp; int32_t v1 = 0; int32_t v2 = 0; for(uint8_t i=0; i<DataCnt; i++) { tmp = MulAndDiv65536(v1<<1, Coeff) - v2 + DataArr[i]; v2 = v1; v1 = tmp; } v1 >>= 9; // Überlauf verhindern für -511<=DataArr[i]<=+511) v2 >>= 9; // Überlauf verhindern für -511<=DataArr[i]<=+511) tmp = MulAndDiv65536(v1<<1, Coeff); tmp = tmp*v2; tmp = v1*v1+v2*v2-tmp; return tmp; } int main() { // // Koeffizienten für DTMF-Frequenzen bei 8000Hz Sample-Frequenz // // -
-
Thread
CRC berechnen - Wo ist der Fehler?
Tmp; /* c */ Tmp = New[i] >> 5; /* d */ Bcc_Lo = Bcc_Hi; /* e */ Bcc_Hi = New[i] ^ Tmp; /* f */ Tmp = New[i] << 3; /* g */ Bcc_Lo ^= Tmp; /* h */ Tmp = New[i] >> 4; /* i */ Bcc_Lo ^= Tmp; /* j */ } CRC_L = ~Bcc_Lo; /* 3 */ CRC_H = ~Bcc_Hi; /
-
Thread
128 Bit Risc
=(const cINT112& obj); public: // ctor cINT112() { low.i = 0; hgh.i = 0; tmp.i = 0; }; // dtor virtual ~cINT112() {}; // basic member functions void SET(ui64 i) { low.i = i; hgh.i = 0; tmp.i = 0; hgh.c[1] = low.c[7]; low.c[7] = 0;
wenn nicht, müsste die (2 x + x + 1)-Operation in etwa so realisiert werden. [code] hgh <<= 1; tmp = low >> 63; hgh |= tmp; tmp = low << 1; if ((tmp & 0x80000000) && (low & 0x80000000)) { hgh += 1; } low += tmp; if (low == 0xFFFFFFFF) { hgh += 1; } low +=1; [/code] Statt einem fünf-Zeiler
-
Thread
Verkettete Liste für Mikrocontroller Gesperrt
next; list->next = new_node; return new_node; } node delete_right(node list) { node tmp = list->next; list->next = tmp->next; free(tmp); return list; } void main(void) { node pnode; pnode = (node)malloc(sizeof(struct list_node)); pnode = insert_right(pnode, 123
next; list->next = new_node; return new_node; } node delete_right(node list) { node tmp = list->next; list->next = tmp->next; free(tmp); return list; } void main(void) { node pnode; pnode = (node)malloc(sizeof(struct list_node)); pnode->data = 123; pnode->next
-
Thread
MPU6050 - Raw-, gravity- and bodyacceleration
(&gravity, &q); mpu.dmpGetYawPitchRoll(ypr, &q, &gravity); tmp = tmp + String(ypr[0] * 180/M_PI) + " " + String(ypr[1] * 180/M_PI) + " " + String(ypr[2] * 180/M_PI) + " "; mpu.dmpGetLinearAccel(&aaReal, &aa, &gravity); tmp = tmp + String(aaReal.x) + " " + String(aaReal.y) + " " + String(aaReal.z) + "\r\n"; Serial.print(tmp); client.print(tmp); [/c] Der Overflow hat eindeutig etwas mit dem Senden (client.print(tmp)) zu tun, wenn ich es auskommentiere bekomme ich keinen Overflow. Ich denke mal das Problem
-
Thread
Firefox verkürzt das Leben einer SSD.
Auswirkungen mehr haben. Dann weiters unabhaengig vom verwendeten nixoidem FS in ein tmpfs /tmp /var/run /var/lock /var/log /var/tmp /usr/tmp ausser evtl /log kann das ohne zurueckzuschreiben beim runterfahren ohne Probleme geloescht werden. Bei KDE quillt es froehlich unter /var/tmp/kdecache-xxxxx Benutze gelegentlich eine Live-Distro, Slax vom USB-Stick Kleine 1Gb Partition eingerichtet, nach dem alle Pakete Programme Tools eingerichtet waren blieben so 200MB frei, nichts damit
-
Thread
AVR und der Umgang mit C++
movw r30, r16 356: 61 83 std Z+1, r22 ; 0x01 358: 0f 90 pop r0 35a: df 91 pop r29 35c: cf 91 pop r28 35e: 1f 91 pop r17 360: 0f 91 pop r16 362: 08 95 ret 00000364 <main>: #include "RX5808.h" // declar
out 0x0b, r1 ; 11 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif [/code]
-
Thread
Arduino uno R3
.tmp\hooks.c.o C:\Programme\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\DOKUME~1\DJPETE~1\LOKALE~1\Temp\build4228716876612677442.tmp/core.a C:\DOKUME~1\DJPETE~1\LOKALE~1\Temp\build4228716876612677442
C:\DOKUME~1\DJPETE~1\LOKALE~1\Temp\build4228716876612677442.tmp\Blink.cpp.o C:\DOKUME~1\DJPETE~1\LOKALE~1\Temp\build4228716876612677442.tmp/core.a -LC:\DOKUME~1\DJPETE~1\LOKALE~1\Temp\build4228716876612677442.tmp -lm C:\Programme\Arduino\hardware\tools\avr/bin
-
Thread
Schaltung korrekt für LED Fader mit ATMega32?!
} void pwm_up_down (const uint16_t pwm_table[], int16_t size, uint16_t delay) { int16_t tmp; for (tmp = 0; tmp < size; tmp++) { OCR1A = pgm_read_word (& pwm_table[tmp]); my_delay (delay); } for (tmp = size-1; tmp >= 0; tmp--) { OCR1A
Schritt void pwm_up_down (const uint16_t pwm_table[], int16_t size, uint16_t delay) { int16_t tmp; for (tmp = 0; tmp < size; tmp++) { OCR1A = pgm_read_word (& pwm_table[tmp]); my_delay (delay); } for (tmp = size-1; tmp >= 0; tmp--) { OCR1A
-
Thread
Class method pointer
angesprungen. Auch stimmen die Adressen nicht überein. Update hat bspws 0x8004a34 und asdf 0x8004a35. Das ist auch durchgehend so, die Pointer haben immer die Adresse der Funktion + 1. Habe auch schon gegoogelt, aber hat anscheinend nicht viel geholfen. Hat jemand eine Idee? Ich benutze GCC 5.3.0
solche Schweinereien ganz einfach funktionieren: [c] functions.push_back( [&foo1, &bar]() {int tmp = foo1.bla(); bar.set(tmp);} ); [/c] Bei all diesen Features muss man sehr darauf achten, sie nicht übertrieben einzusetzen. Die Möglichkeiten sind verlockend, aber man kann sehr leicht völlig undurchdringliche
-
Thread
Arduino Fehlermeldung beim Kompilieren
hardware\arduino\avr\variants\standard C:\Users\CHRIST~1\AppData\Local\Temp\build830106722983180350.tmp\sketch_jul28a.cpp -o C:\Users\CHRIST~1\AppData\Local\Temp\build830106722983180350.tmp\sketch_jul28a.cpp.o sketch_jul28a.ino:2:1: error: expected unqualified-id before numeric constant sketch_jul28a.ino
digitalWrite(4, HIGH); 31 digitalWrite(5, LOW); 32 delay(250); // Warte eine Viertelsekunde 35 } 37 } // Beginne von vorne mit der Schleife
-
Thread
Prozess Problem, ausgabe FPGA entspricht nicht der Simulation
Danach warte ich einen Flankenwechsel von Masterclk. Dann schreibe ich die Daten vom Master auf ein TMP regester. RX_FINISH dient hier nur als Test und gibt zurück wenn S_BIT_CNT null erreicht hat. Ok nun zu meinem Problem. Das ganze ist mega instabil. Ohne die innere if schleife sehe ich an M_TMP
M_CS, der M_CLK und auch MOSI. Da passiert dann sowas: http://www.lothar-miller.de/s9y/categories/35-Einsynchronisieren
-
Thread
ATtiny44A - Problem beim sleep mode
ATtiny84A-PU von 1127 bei 3.0 V, und bin etwas irritiert: folgendes (Assembler-)Programm [avrasm] ldi tmp0,(1<<SE)+(1<<SM1)+(0<<SM0) ; power-down out MCUCR,tmp0 sleep rjmp pc-1 [/avrasm] ergibt bereits eine Stromaufnahme von 0.11 uA.
Der AC wird im power down mode automatisch abgedreht. Datenblatt 7.4.2 auf Seite 35
-
Thread
Root-Paßwort für Raspberry Pi 3
sheeva@m1:~$ crontab -l * * * * * /usr/bin/php /home/sheeva/cron_example.php sheeva@m1:~$ tail -f /tmp/cron_example.txt Sat, 11 Jun 16 09:45:01 +0200 Sat, 11 Jun 16 09:46:01 +0200 Sat, 11 Jun 16 09:47:01 +0200 ^C sheeva@m1:~$ chmod +x cron_example.php sheeva@m1:~$ echo '' | crontab sheeva@m1:~$ (crontab -l ; echo '* * * * * /home/sheeva/cron_example.php') | crontab sheeva@m1:~$ tail -f /tmp/cron_example.txt Sat, 11 Jun 16 09:45:01 +0200 Sat, 11 Jun 16 09:46:01 +0200 Sat, 11 Jun 16 09:47:01 +0200 Sat, 11 Jun 16 09:48:01 +0200 Sat, 11 Jun 16 09:49:01 +0200 Sat, 11 Jun 16 09:50:01
-
Thread
Notebook mit Celeron? 14" oder 15.6"?
Vorschläge: https://www.harlander.com/fujitsu-lifebook-s751-35-6cm-14-notebook-i5-2-5ghz-8gb-500gb-dvd-rw-umts-bluetooth-win-7-gebrauchte-a-ware.html https://www.harlander.com/fujitsu-lifebook-s752-35-6cm-14-notebook-i5-2-6ghz-8gb-500gb-dvd-rw-wxga-umts-windows
www.harlander.com/artikel/48117?vaid=367&vvid=20528 https://www.harlander.com/lenovo-thinkpad-t410-35-8cm-14-1-notebook-i5-2-53ghz-4gb-320gb-nvs-3100m-cam-wxga-win-7-gebrauchte-a-ware.html
-
Thread
Testdisk auf crypt (luks) Partition anwenden - geht das?
file or directory Failed to open temporary keystore device. Partition #5&6 sda5/sda6, die var und tmp enthalten und ebenfalls verschlüsselt sind, können gemounted werden und befinden sich ja auch innerhalb der erweiterten Partition. Ich konnte Gestern noch mit cryptsetup luksDump mir die Metadaten
o.g. Output. Aber!! cryptsetup -v --debug luksHeaderBackup /dev/loop0 --header-backup-file /tmp/hbck.bin # cryptsetup 1.6.2 processing "cryptsetup -v --debug luksHeaderBackup /dev/loop0 --header-backup-file /tmp/hbck.bin" # Running command luksHeaderBackup. # Locking memory. # Installing SIGINT
-
Thread
FT800 / FT810 Library
,"0"); strcat(tmp_str,num2string(miesiac,NONE)); strcat(tmp_str,"/"); if(dzien<10) strcat(tmp_str,"0"); strcat(tmp_str,num2string(dzien,NONE)); strcat(tmp_str," "); if(godziny<10) strcat(tmp_str,"0"); strcat(tmp_str,num2string(godziny,NONE)); strcat(tmp_str,":"); if(minuty <10) strcat(tmp_str,"0"); strcat(tmp_str,num2string(minuty,NONE)); //strcat(tmp_str,":"); if(sekundy <10) strcat(tmp_str,"0");
-
Thread
Attiny ADC Zuverlässigkeit
Temperatur zurückgeschickt wird. [c] //Main() habe das jetzt so gemacht. Hoffe es wirkt. tmp_adcval = 1273-(ADC_Read(1) *22/10); cli(); adcval = tmp_adcval; sei(); // Interrupt ISR( USI_OVF_vect ) { ... //case erstes byte I2C_DataAck( ((
soo [c] cli(); adcval = tmp_adcval; sei(); [/c] hat mein Problem gelöst. Siehe Dateianhang. Danke nochmals
-
Thread
Brute Force mit dem Arduino
[c] int16_t zahl; uint8_t ziffer[4]; for( zahl = 0; zahl < 10000; zahl++ ){ unit16_t tmp = zahl; for( int8_t i = 3; i >= 0, i-- ){ ziffer[i] = tmp % 10; tmp /= 10; // mache was mit den 4 Ziffern } } [/c]
auf: [c] int16_t zahl; uint8_t ziffer[4]; for( zahl = 0; zahl < 10000; zahl++ ){ unit16_t tmp = zahl; for( int8_t i = 3; i >= 0, i-- ){ ziffer[i] = tmp % 10; tmp /= 10; switch(tmp): case 1: SendIRCode1(); break; case
-
Thread
Projekthilfe gesucht - Parallela Cluster (Supercomputing :))
; => $bestand[0]=6.95; av@av-1005HA:~/test/tmp/cnc$ php5 t1.php Loops: 4.598.126 <br> Hits: 400.800 <br> Seconds: 8,434 sec. Dasselbe mit tcc compiliert, av@av-1005HA:~/test/tmp/cnc$ ./a.out Loops: 4598126 Hits: 400800 Seconds
Iron Share > 60% Problem B: > - 50t mit Iron Share > 45% [code] min: 13.21 y0a + 27.46 y1a + 35.66 y2a + 89.21 y3a + 60.69 y4a + 13.21 y0b + 27.46 y1b + 35.66 y2b + 89.21 y3b + 60.69 y4b; x0a + x1a + x2a + x3a + x4a >= 200000; y0a + y1a + y2a + y3a + y4a >= 50000; x0a + x0b <= 69148;
-
Thread
NodeMCU (ESP8266) Soft WDT reset
4 sel.freq: 26000000 tttttest crystal : 1 filename: C:\Users\Kolja\Desktop\Flash tool 2.4\bin_tmp\downloadPanel1\v1.3.0.2 AT Firmware.bin_rep offset : 1032192 Erasing flash... head: 4 ;total: 255 erase size : 1028096 mode: 0 size : 4 sel.freq: 26000000 tttttest crystal : 1 Writing at
Rücksprungadressen holt. Zumindest hat er sich in der hacked_Servo_ext_Poti_seriel.ino rumgetrieben, die Zeile 35 wird aber sicher nicht passen wegen der Optimierung des Compilers. Vielleicht hilft es Dir ja etwas weiter. Gruß aus Berlin Michael