-
Thread
Welche Programmiersprache auf µC
(keine Schleife, kein Funktionsaufruf) von Initialisierungsanweisungen. Hat man sich mit dieser TMP-Technik etwas angefreundet, kann man das obige in der Schreibweise weiter verkürzen, indem man ein paar allgemeine Meta-Funktionen zum Manipulieren von Typ-Listen schreibt: [c] using leds = Meta
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
Assembler (AVR) Freaks bitte: der schnellste Weg, einen ganzzahligen Wert zu skalieren? Gesperrt
-1) ; , ldi r23,0 ; call __divmodhi4 ; ../../include/units/percent.h:36: mValue = rhs.mValue; sts z,r22 ; z.mValue, tmp56 .L9: rjmp .L9 ; .size main, .-main [/c]
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
AVR Attiny10 External Interrupt in C
vectors>: 0: 0a c0 rjmp .+20 ; 0x16 <__ctors_end> 2: 12 c0 rjmp .+36 ; 0x28 <__vector_1> 4: 10 c0 rjmp .+32 ; 0x26 <__bad_interrupt> 6: 0f c0 rjmp .+30 ; 0x26 <__bad_interrupt> 8: 0e c0 rjmp .+28 ; 0x26
//round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); 3e: 4f e9 ldi r20, 0x9F ; 159 40: 56 e8 ldi r21, 0x86 ; 134 42: 61 e0 ldi r22, 0x01 ; 1 44: 41
-
Thread
AVR ATMEGA8 hex file erstellen
mmcu=atmega8 -o main.elf main.c In file included from main.c:46:0: /usr/lib/avr/include/avr/delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>." [-Wcpp] #warning "This file has been moved to <util/delay.h>." ^ /tmp/ccwGQNMz.o: In Funktion `main': /media/interne_festplatte
AVR_Projekte/Herzen/src/main.c:(.text.startup+0x2): Nicht definierter Verweis auf `avr_spi_master_init' /tmp/ccwGQNMz.o: In Funktion `__vector_6': /media/interne_festplatte/data/Dokumente/Aktionen/AVR_Projekte/Herzen/src/main.c:305: Nicht definierter Verweis auf `avr_spi_send_word' collect2: error: ld returned
-
Thread
STM32F103C Systemtakt Einstellung Hilfe
= SYSCLK_FREQ_24MHz; /*!< System Clock Frequency (Core Clock) */ #elif defined SYSCLK_FREQ_36MHz uint32_t SystemCoreClock = SYSCLK_FREQ_36MHz; /*!< System Clock Frequency (Core Clock) */ #elif defined SYSCLK_FREQ_48MHz uint32_t SystemCoreClock = SYSCLK_FREQ_48MHz
#elif defined SYSCLK_FREQ_24MHz static void SetSysClockTo24(void); #elif defined SYSCLK_FREQ_36MHz static void SetSysClockTo36(void); #elif defined SYSCLK_FREQ_48MHz static void SetSysClockTo48(void); #elif defined SYSCLK_FREQ_56MHz static void SetSysClockTo56(void); #elif defined
-
Thread
Horizon EDA [War: Neues, halbfertiges Elektronik-CAD-Programm]
******************************************************* (gtk3-demo.exe:520): Gtk-WARNING **: 10:36:49.224: attach buffers (gtk3-demo.exe:520): Gtk-WARNING **: 10:36:49.224: attach 0 1 (gtk3-demo.exe:520): Gtk-WARNING **: 10:36:50.339: attach buffers (gtk3-demo.exe:520): Gtk-WARNING **: 10:36:50.339: attach 0 1 (gtk3-demo.exe:520): Gtk-WARNING **: 10:36:50.357: attach buffers (gtk3-demo.exe:520): Gtk-WARNING **: 10:36:50.357: attach 0 1 (gtk3-demo.exe:520): Gtk-WARNING **: 10:36:50.373: attach buffers (gtk3-demo.exe:520): Gtk-WARNING **: 10:36:50.373
-
Thread
Bitmanipulation beschleunigen
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
23 and r24, r25 e34: 09 f4 brne .+2 ; 0xe38 <__stack+0x539> e36: 21 c1 rjmp .+578 ; 0x107a <__stack+0x77b> e38: 47 9a sbi 0x08, 7 ; 8 e3a: 88 b1 in r24, 0x08 ; 8 e3c: 96 95 lsr r25 ;m>>=1
-
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
Was kann man mit 16Byte an RAM machen?
movlw 07h movwf tmp step movfw tmp movwf tmp2 movfw i2cDat movwf tmp3 movfw tmp incf tmp ;do some stuff to create zero bit if necessary decf tmp sru btfsc STATUS,2 ;check if tmp
0 ;sends Byte which is stored in i2cDat Register SendByte: movlw 07h movwf tmp step movfw tmp movwf tmp2 movfw i2cDat movwf tmp3 incf tmp ;do some stuff to create zero bit if necessary decf tmp sru btfsc STATUS,2 ;check if tmp is already zero
-
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
Ausgaben von objdump
die AVR-Variante (am Anfang kann man sehen, dass es als Interrupt akzeptiert wurde): [c] make/../tmp/obj/SystemTick.o: file format elf32-avr Disassembly of section .text.__vector_13: 00000000 <__vector_13>: #include <SystemTick.h> volatile sys::systemTick::TickType sys::systemTick
0x800000 <__SREG__+0x7fffc1> 32: a0 93 00 00 sts 0x0000, r26 ; 0x800000 <__SREG__+0x7fffc1> 36: b0 93 00 00 sts 0x0000, r27 ; 0x800000 <__SREG__+0x7fffc1> } 3a: bf 91 pop r27 3c: af 91 pop r26 3e: 9f 91 pop r25 40: 8f 91 pop r24 42
-
Thread
AVR und C++ - ein Versuch
Cooler Test [code] [nix]$ make make depend make[1]: Verzeichnis „/tmp/AVR-Cpp_161021/nix“ wird betreten if grep '^# DO NOT DELETE' Makefile >/dev/null; \ then \ sed -e '/^# DO NOT DELETE/,$d' Makefile > \ Makefile.$$ && \ mv -f Makefile
folgendem gemacht: [code] main: 34: cbi 0x17, 0 ; InputPin btn(&DDRB,&PORTB,&PINB, 0) 36: sbi 0x17, 1 ; OuputPin led(&DDRB,&PORTB,&PINB, 1) 38: sbis 0x16, 0 ; if btn.isHigh() 3a: rjmp .+4 ; (jump to 0x40) 3c: cbi 0x18, 1 ; led.setLow() 3e: rjmp .-8 ;
-
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
ItoA mit Uint64_t
); // den String in sich spiegeln for( j = 0; j < i / 2; ++j ) { tmp = Buffer[j]; Buffer[j] = Buffer[i-j-1]; Buffer[i-j-1] = tmp; } Buffer[i] = '\0'; }
Verfahren für ultoa etc. verwendet werden: Ein Integer Typ, dessen String-Darstellung in einer Basis 2...36 zu bestimmen ist.
-
Thread
AVR und der Umgang mit C++
{ 364: cf 93 push r28 366: df 93 push r29 368: 1f 92 push r1 36a: cd b7 in r28, 0x3d ; 61 36c: de b7 in r29, 0x3e ; 62 RX5808 rx; 36e: ce 01 movw r24, r28 370: 01 96 adiw r24, 0x01 ; 1 372: 0e 94 40 00 call
out 0x0b, r1 ; 11 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif [/code]
-
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
data2mem zur Mitarbeit bewegen
PLATFORM)_top.bit boot.elf $(DATA2MEM) -bd boot.elf -bm foo_bd.bmm -bt $< \ -bx /tmp \ -o b $@ [/code] Gruss, - Strubi P.S. Poste doch sonst mal dein BMM.
sehen. Das hat die folgenden Konsequenzen: - die bmm-Datei passt nicht mehr (RAMB18 statt RAMB16, 36 Bit statt 32 Bit [confusing]) - die mem-Datei zum Initialisieren braucht ein anderes Format - elf-Dateien gehen vermutlich gar nicht mehr P.S.: Mit dem angehängten Quelltext (Versuch eines Minimalbeispiels
-
Thread
MPU6050 - verwirrend?
include<Wire.h> const int MPU_addr=0x68; // I2C address of the MPU-6050 0x68 int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ; void setup() { Serial.begin(9600); Wire.begin(); Wire.beginTransmission(MPU_addr); Wire.write(0x6B); // PWR_MGMT_1 register Wire.write(0); // set to zero (
Serial.print(AcZ); Serial.print("\t"); Serial.print("\t"); Serial.print("\t"); Serial.print(Tmp/340.00+36.53); //equation for temperature in degrees C from datasheet Serial.print("\t"); Serial.print("\t"); Serial.print("\t"); Serial.print("Gyrometer (Drehgeschwindigkeit in */Sekunde
-
Thread
Sinus - Frequenz und Amplitude messen
, der Fu stimmt nicht ;) Ich bin ja gerade nicht in der Werkstatt, aber ich habe mal ein Bild ("tmp1.jpg") bearbeitet, dass ich hier auf dem Rechner habe. Der Motor ist wie auf Bild "tmp2.jpg" angebaut. Die Leitungen der Sensoren laufen also auf der gegenüberliegenden Seite des FUs. EDIT: Auf den
Fu stimmt nicht ;) > > Ich bin ja gerade nicht in der Werkstatt, aber ich habe mal ein Bild > ("tmp1.jpg") bearbeitet, dass ich hier auf dem Rechner habe. Der Motor > ist wie auf Bild "tmp2.jpg" angebaut. Die Leitungen der Sensoren laufen > also auf der gegenüberliegenden Seite des FUs. > EDIT:
-
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
C jedes zweite Bit verwerfen
hier ist Standard-C, das kann jeder Compiler. [c] uint8_t squeeze(uint8_t data) { uint8_t tmp=0; if (data & (1<<7)) tmp |= (1<<3); if (data & (1<<5)) tmp |= (1<<2); if (data & (1<<3)) tmp |= (1<<1); if (data & (1<<1)) tmp |= (1<<0); return tmp; } uint8_t bindata[8]
CD EF GH // 0 18 36 54 tmp *= 0x40001000040001; // 0x40001000040001 = 1<<0 | 1<<18 | 1<<36 | 1<<54 return tmp >> 56; } int main(int argc, const char* argv[]) { //
-
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
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: 0.249174 sec sowie mit gcc av@av-1005HA:~/test/tmp/cnc$ ./a.out Loops: 4598126 Hits: 400754 Seconds: 0.118603 sec Trotzdem würde ich da eher eine rechnerische Lösung vorziehen. Muss es denn pnp sein ?
-
Thread
Gy-521 mit MSP430G3 (version 1.5) Launchpad
Es kommen immer die selben Messwerte, AcX = Acy = AcZ = GyX = GyY = GyZ = 0; Tmp = 36.
Martin schrieb im Beitrag #4514141: > Tmp = 36. Du meinst 36.53? Daraus folgt, das aus dem MPU6050 alle Register als 0 gelesen werden.
-
Thread
mAh messen, welche Methode?
mit 15R Lastwiderstand entladen, was etwas über 3 Stunden gedauert hat (1096 Meßwerte): [pre] /tmp $./akku.pl <akku_800mAh_15R.log Akku-Kapazität oberer Grenzwert: 0.73822 Ah Akku-Kapazität linear gemittelt: 0.73813 Ah Akku-Kapazität unterer Grenzwert: 0.73804 Ah Akku-Kapazität vom Akkutester
die einen relativ gemütlichen Tempco hat. 2W Drahtwiderstände mit 15R wie sie bspw. Reichelt für €0,36 verkloppt, haben 150ppm/K. Wenn man so einen Widerstand mit 65K Übertemperatur betreibt, gibt das gerade mal 1% Abweichung. Über den gesamten Entladezeitraum fällt die Spannung von knapp über 4V auf
-
Thread
Wie lange hält bei euch eine SSD?
Einsatz sein. Als OS wird Gentoo verwendet. Die Kompiliererei findet allerdings im RAM statt (/var und /tmp als "RAMDisk"). Gemäß SMART stehen bisher 8340 Betriebsstunden und 11752 Host_Writes_32MiB, also 376GiB geschriebene Datenmenge zu Buche. Das Datenblatt gibt ein "Minimum Useful Life" von 5 Jahren mit 20GB Schreibvolumen pro Tag an. Also knapp 44000 Betriebsstunden und 36,5TB Schreibvolumen. Wird wohl noch eine Weile halten.