-
Thread
a2i - Konvertierung ASCII zu Integer
variable val : unsigned (63 downto 0); variable mult : unsigned (127 downto 0); variable tmp : unsigned (71 downto 0); begin val := to_unsigned(0,64); mult := to_unsigned(1,128); for i in 0 to 13 loop tmp := mult(val'range)*(unsigned(ascii(i*8+7 downto
da klingeln bei mir die Alarmglocken. Und das müssen so viele sein, sonst kämen bei dem FPGA keine 35 ns zusammen.
-
Thread
Temperatur 0,1°C Auflösung
...ist ja grade der unterschied zwischen aufloesung und genauigkeit. 35 36 37 ,,,,,, 35 36 37 ,,,,,, bei hoher aufloesung kann man kleine unterrschiede feststellen, bei hoher genauigkeit kann man die position genau bestimmen
Peter Deine Interpretation gleicht meiner. Es gibt übrigens auch einen netten I2C-Sensor von TI: TMP100 / TMP101.
-
Thread
Inline Assembler nach C
Assembler defines \n" + " .EQU UCSR0B,0xC1 ;Assembler defines \n" + " .EQU TMP_REG0,0x1E ;Assembler defines \n" + " .EQU TMP_REG1,0x2A ;Assembler defines \n" + " .EQU TMP_REG2,0x2B ;Assembler defines \n" + " .EQU TMP_REG3,0x28
***/ \n" + " END_RX_IRQ: \n" + " IN R31,TMP_REG3 ;62 Restore R31 \n" + " OUT __SREG__,R31 ;63 Restore SREG \n" + " IN R31,TMP_REG2 ;64 Restore R31 \n" + " IN R30,TMP_REG1 ;65
-
Thread
Dividieren durch Multiplizieren
(5 * 2**32 / 27). Rückübersetzt nach C entspricht dieser Code dem folgenden: [c] uint32_t tmp = (uint64_t)x * 795364315 >> 32; y = (tmp + ((x - tmp) >> 1)) >> 4; [/c] Im Vergleich zu deiner Lösung ist hier die magische Konstante nur 30 statt 32 Bit groß, dafür werden aber insgesamt mehr
klassisches Runden (d.h. Aufrunden bei einem Nachkommaanteil von ≥0.5) dieser Wert nicht 1<<30, sondern 1<<35 sein müsste.
-
Thread
GCC: Sehr langes C-Programm für Zielsystem PC
ist etwas größer: chef@localhost /tmp/xyz $ ls -lah gcd.o -rw-r--r-- 1 chef chef 13M Jun 29 01:27 gcd.o Dafür spuckt der Linker ein paar Fehler aus: chef@localhost /tmp/xyz $ gcc -o gcd gcd.o 2>&1 gcd.o: In function `main': gcd.c
/tmp $ date && ./gcd && date Fri Jun 29 20:45:38 CEST 2007 3.456838e+02 Fri Jun 29 20:45:38 CEST 2007 chef@localhost /tmp $
-
Thread
CF Speicherkarte Als RAW Laufwerk
[code]sudu bash cd /tmp mkdir xxx mount /dev/sdb1 xxx ls xxx [/code]
Zwie Blum schrieb im Beitrag #1960415: > [code]sudu bash > cd /tmp > mkdir xxx > mount /dev/sdb1 xxx > ls xxx > [/code] sudo, aber sonst wohl richtig
-
Thread
Schwerer Bug in AVR-GCC 4.1.1 Gesperrt
berechnen kann. (zwar nicht als Konstante, aber als Immediate). [avrasm] foo: ldi r24,lo8(48) ; tmp42, sts display,r24 ; <variable>.digit, tmp42 sts display+1,r24 ; <variable>.digit, tmp42 sts display+2,r24 ; <variable>.digit, tmp42 sts display+3,r24 ; <variable>.digit, tmp42
r31,hi8(display) ; dis, /* #APP */ ;RELOAD z with dis /* #NOAPP */ ldi r24,lo8(48) ; tmp42, st Z,r24 ; <variable>.digit, tmp42 std Z+1,r24 ; <variable>.digit, tmp42 std Z+2,r24 ; <variable>.digit, tmp42 std Z+3,r24 ; <variable>.digit, tmp42 ret [/avrasm] Mit
-
Thread
16x PWM mit ATmega8 + I2C / TWI
ldi XL, low(0x0060) besser wäre: ldi XH, high(0x0060) ldi XL, low(0x0060) ------ ldi tmp1, 0b00000010 ; Timer 0 out TCCR0, tmp1 ; Prescaler 8 besser wäre: ldi tmp1, 1<<.... ; Timer 0 out TCCR0, tmp1 ; Prescaler 8 ------- Bei "Interruptroutinen" würde ich sicherheitshalber
dann auch ALT: [avrasm] TWICLR: ; TWINT loeschen, wieder empfangsbereit gehen ;ldi tmp1, (1<<TWINT)|(1<<TWEA) ;out TWCR, tmp1 [/avrasm] NEU: [avrasm] ldi temp, 1<<TWINT|1<<TWEA|1<<TWEN|1<<TWIE [/avrasm] Gruß Jonas
-
Thread
wieder einmal "undifined reference"
data */ "mov __tmp_reg__,%B0" "\n\t" "swap __tmp_reg__" "\n\t" /* swap(crc.hi ^ data) */ /* Calculate the ret.lo of the CRC. */ "mov %1,__tmp_reg__" "\n\t" "andi %1,0x0f
__ret; __asm__ __volatile__ ( "eor %A0,%1" "\n\t" "mov __tmp_reg__,%A0" "\n\t" "swap %A0" "\n\t" "andi %A0,0xf0" "\n\t" "eor %A0,__tmp_reg__" "\n\t" "mov __tmp_reg__,%B0" "\n\t" "mov
-
Thread
Mini Wanderkiste " Runde I " Gesperrt
TRANSCEIVER > 50 1N4148 MINI-MELF > 30 1.5KE33CA SURPRESSOR DIODE > 20 470µF / 50V ELKO > 20 TMP03 TEMPERATUR SENSOR > 50 8,2k 1206 > 20 MAX660 NEGATIVE VOLTAGE CHARGE PUMP -1,5V < Ua < -5,5V > 10 MAX232 RS232 LEVEL CONVERTER > 20 220µF / 35V CHIP ELKO PANASONIC > 20 100µF / 16V CHIP
10x47uF 25V, 2x100uF 50V, 5x22uF 40V, 5x10uF 63V, 20x Folienkondensatoren SMD Kondensatoren: 5x 220uF 35V,5x2,2uF 63V, 2x 22uF 160V, 25x 220pF 5x TMP03 10x Dual LEDs 3x Fuse T0,4A 2x Schiebetaster 1x USB Buchse 3x 324n SMD 5x LF356N 2x Schalter mit Rolle 10x 25LC256 2x LM317 2x SMD Taster groß
-
Thread
Timer Läuft im Sim - Aber nicht in real?
schneller als zu fragen, und auf mehr oder weniger geistreiche Antworten zu warten. [code] leo@cb:/tmp$ cat test16.c #include <avr/io.h> int main(void) { OCR1AH = 0x06; OCR1AL = 0x19; OCR1A = 0x0619; return 0; } leo@cb:/tmp$ avr-gcc -mmcu=atmega8 -O2 -S test16.c -o - .file
r24 ldi r24,0 ldi r25,0 ret .size main, .-main .ident "GCC: (GNU) 4.8.1" leo@cb:/tmp$ [/code]
-
Thread
PHILIPS VP5500 VoIP Telefon bei Pollin
[code] modprobe jffs2 modprobe mtdram total_size=32768 erase_size=128 modprobe mtdblock mkdir /tmp/phone-root mknod /tmp/phone-mtdb2 b 31 0 dd if=/your/backup/file of=/tmp/phone-mtdb2 mount -t jffs2 /tmp/phone-mtdb2 /tmp/phone-root [/code]
to make a backup of your root partition, you can do as > follows: > [code] > echo '#!/bin/sh' > /tmp/backup.sh > echo 'cat /dev/mtdb2' >> /tmp/backup.sh > chmod 700 /tmp/backup.sh > micro_inetd 31337 /tmp/backup.sh > [/code] Better use [code] echo 'cat /dev/mtdb2 2>/dev/null' >> /tmp/backup.sh
-
Thread
Vodafone Webby Webradio
Erstell doch mal folgende update.sh: [code] #!/bin/sh date=`date` echo "SD-Card inserted $date" >>/tmp/update.log # prozesse auslesen ps >>/tmp/update.log # mountlist auslesen mount >>/tmp/update.log 2>>/tmp/update.log # verzeichnisstruktur auslesen find / >>/tmp/update.log # noch schnell Telnetd starten /usr/sbin/telnetd -l /bin/sh -p 23 2>>/tmp/update.log # prozesse nochmals auslesen ps >>/tmp/update.log # netstat netstat -a >>/tmp/update.log echo "mounting SD-Card rw" >>/tmp/update.log /bin/mount /dev/mmcblk0p1 /dev/shm/tmp/mmcblk0p1
-
Thread
Messwerte "glätten"
oder 03.02.2013 22:31:42 X_T_RAUM 22251 03.02.2013 22:33:28 X_T_RAUM 22225 03.02.2013 22:35:03 X_T_RAUM 22251 03.02.2013 22:36:49 X_T_RAUM 22225 (Raumtemperatur) die Werte sind integers, skaliert mit 1000, d.h. 22251 steht für 22.251°C wie man sieht ist die Differenz bei Außenluft
PT1-Filter: #define filterStaerke 6 int32_t tmpSum; tmpSum += (tmpSum >> filterStaerke) + tmpInput; tmpSum steigt dann auf das 2**filterStaerke-fache von tmpInput an, deshalb auch 32bit.
-
Thread
c++ Code langsam
to-opt to-opt.cpp [/pre] In einem tmpfs von einem i7-8650U (1.90GHz) ausgeführt: [pre] [shell:/tmp/cpp]$ time ./to real 0m0,931s user 0m0,901s sys 0m0,030s [shell:/tmp/cpp]$ time ./to real 0m0,927s user 0m0,905s sys 0m0,022s [shell:/tmp/cpp]$ time ./to real 0m0,930s user 0m0,917s sys 0m0,013s [shell:/tmp/cpp]$ mv nodup.txt nodup.txt-ref [shell:/tmp/cpp]$ time ./to-opt real 0m0,310s user 0m0,289s sys 0m0,022s [shell:/tmp/cpp]$ time ./to-opt real 0m0,310s user 0m0,296s sys 0m0,014s
-
Thread
CRC-16-Berechnung mit Lookup-Tabelle: zwei Varianten, beide gültig?
0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6, 0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE, 0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485, 0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D, 0x3653, 0x2672, 0x1611
Ich würd das so anpassen: [code] void crcAlgC(char* buf, unsigned short* crc) { unsigned short tmp = *crc; for(unsigned char* it=(unsigned char*)buf, c=*it; c; c=*++it) tmp = (tmp << 8) ^ crctab[(tmp >> 8) ^ c]; *crc = tmp; } [/code] Weniger dereferenzierungen, kein ständiges strlen
-
Thread
SmuView - Eine sigrok GUI für Netzteil, Multimeter und mehr
Building CXX object CMakeFiles/smuview.dir/src/devicemanager.cpp.o In file included from /home/majo/tmp/smuview-master/src/devices/basedevice.hpp:34, from /home/majo/tmp/smuview-master/src/devicemanager.cpp:38: /home/majo/tmp/smuview-master/src/devices/deviceutil.hpp:492:23: error:
^~~~~~~~~~~~~~~~~ /home/majo/tmp/smuview/src/ui/dialogs/connectdialog.cpp: In member function ‘void sv::ui::dialogs::ConnectDialog::on_scan_pressed()’: /home/majo/tmp/smuview/src/ui/dialogs/connectdialog.cpp:343:55: error: ‘QVariant
-
Thread
Attiny85: Brown-Out-Detection via Software ausschalten
Hallo, wie im Attiny85 Datenblatt auf Seite 35 genannt möchte ich gerne via Software die Brown-Out-Detection deaktivieren, bevor ich in den Power-Down Schlaf gehe. Diese Möglichkeit soll laut Datenblatt für Attiny85 ab Rev. C existieren. Hierfür
Vielleicht sieht aber jemand einen Fehler im Programm: [avrasm] .include "tn85def.inc" .def tmp0 = r16 ldi tmp0,(1<<SE)+(1<<SM1) + (1<<BODS)+(1<<BODSE) out MCUCR,tmp0 ldi tmp0,(1<<SE)+(1<<SM1) + (1<<BODS)+(0<<BODSE) out MCUCR,tmp0 sleep [/avrasm]
-
Thread
ATmega8 untere Dimmstufen zu groß
(1); } 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 = pgm_read_word (& pwm_table[tmp]); my_delay (delay); } } void pwm_16_256 (uint16_t delay) { // 16 Bit Fast PWM TCCR1A = 0x82 | INVERT_PWM; // stop timer TCCR1B = 0; // TOP for PWM, full 16 Bit ICR1 = 0xFFFF
-
Thread
64 Stall- Laternen mit dimmbarer LED ansteuern
206, 212, 217, 223, 230, 236, 242, 248, 255, }; ~ byte pwm_values[64],i; dword pwm_tmp,pwm_val; dword pwm_vals[10]; pwm_setup() { memset(pwm_vals,0,sizeof(pwm_vals)); for(i=63;pwm_tmp=0x80000000;pwm_tmp;pwm_tmp>>=1,i--) { if(pwm_values[i]&0x80) pwm_vals[7]|=pwm_tmp;
pwm_tmp; if(pwm_values[i]&0x2) pwm_vals[1]|=pwm_tmp; if(pwm_values[i]&0x1) pwm_vals[0]|=pwm_tmp; if(pwm_values[i]==255) pwm_vals[8]|=pwm_tmp; } } #define delay_mul 4 pwm_doit
-
Thread
Erase Kommando MMC Karte
; CMD33[3] = ((addrz & 0x0000FF00) >>8 ); //Sendet Commando an MMC/SD-Karte if ((tmp=sd_write_command (CMD32)) != 0) { sd_ende(); //printf("cmd32: %d\r\n",tmp); return(tmp); } sd_ende(); if ((tmp=sd_write_command (CMD33)) != 0) { sd_ende(); //printf("cmd33: %d\r\n",tmp); return(tmp); } sd_ende(); if ((tmp=sd_write_command (CMD38)) != 0) { sd_ende(); //printf("cmd38: %d\r\n",tmp); return
-
Thread
Fakultaet berechnen auf dem STK500mit AtMega16
1) break; if(fak<=200) { memset(tmp,0,sizeof(tmp)); to_bcd(fak,tmp); //print_bcd(tmp); while(--fak) { //printf("---%i\n",fak); memset(mul,0,sizeof(mul)); to_bcd(fak,mul); //print_bcd(mul); bcd_mul(mul,tmp,fakulaet); // print_bcd(fakulaet); memcpy(tmp,fakulaet,LAENGE); } fputs(" = ", stdout ); print_bcd(fakulaet); } } return 0; }
-
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
Drehgeber auslesen
---- innerhalb der Timer Routinte ---- static int8_t enc_last = 0x01; int8_t i; uint8_t tmp; i=0; // digiswitch polling tmp=PINE; if( (tmp & _BV(PINE4)) ) i = 1; if( (tmp & _BV(PINE3)) ) i ^= 3; // convert gray to binary 00->11, 01->10 tmp=i;
mußt also die Auslesefunktion so ändern: [C] signed char rot_getdelta(void) { signed char tmp; cli(); tmp = rot_delta; rot_delta = tmp & 1; // bit 0 needed for debounce ! sei(); return tmp >> 1; // pulse / 2 } [/C] Peter
-
Thread
Motordrehzahl eingeben Arduino
werden ASCII Zeichen übertragen. Wie bereits geschrieben sendest du eine "2" "5" "5" also 0x32,0x35,0x35. Diese DREI Werte musst du in EINE PWM-Variable umrechnen.
. ein Minuszeichen eingibt * auch wenn dann nur noch 2 Zeichen für die Zahl bleiben. */ int32_t tmp; tmp = atoi(input); if (tmp < 0) pwm = 0; if (tmp > 255) pwm = 255; [/c]
-
Thread
400er LED-Schriftzug Schaltplan
Hier noch die Eckdaten: Netzteil 24V, 1,8A Schaltregler LM2576 12 LEDS in einer Reihe ca. 35 Reihen(noch nicht ganz klar) LEDs 1,8V - 20mA - 4000mcd - 25° LED-Treiber TLC5947 Vielen Dank! Gruß Carsten
break; } } void TLC5947_SetAllGS(uint16_t value) { uint8_t tmp1 = (value >> 4); uint8_t tmp2 = (uint8_t)(value << 4) | (tmp1 >> 4); gsData_t i = 0; do { gsData[i++] = tmp1; // bits: 11 10
-
Thread
Delay -Problem
Wenn_ F_CPU 1 MHz beträgt. Du aber arbeitest mit 7.3728 MHz, also resultieren aus der Division etwa 35 msec.
about decreased resolution. */ void _delay_ms(double __ms) { uint16_t __ticks; double __tmp = ((F_CPU) / 4e3) * __ms; if (__tmp < 1.0) __ticks = 1; else if (__tmp > 65535) { // __ticks = requested delay in 1/10 ms __ticks = (uint16_t) (__ms * 10.0); while(__ticks
-
Thread
Arduino UNO Output LED flackert
LED9496 = 4; int LED97130 = 3; int HEAT = 2; int buttonState1 = 0; int buttonState2 = 0; int TMP36 = A0; //Der Sensor soll am analogen Pin A0 angeschlossen werden. Wir nennen den Pin ab jetzt "TMP36" int sensorwert; int temperatur = 0; //Unter der Variablen "temperatur" wird später der Temperaturwert
function 'void loop()': E:\Programme\arduino\portable\sketchbook\sketch_dec12d\sketch_dec12d.ino:35:41: warning: suggest parentheses around comparison in operand of '==' [-Wparentheses] 35 | digitalWrite(gruen, HIGH == temperatur<=22); | ~~~~~~~~~~^~~~ E:
-
Thread
STM32 usart interrupt wird immer angesprungen
Compiler diese rausschmeißt da die Variable nur beschrieben und nicht weiter verwendet wird. > uint8_t tmp = USART3->DR; // dummy read Dadurch würde auch das RXNE Bit nicht zurückgesetzt werden und die ISR würde dauerhaft aufgerufen werden.
USART3, USART_IT_RXNE) != RESET) { if(Usart_3.rx_cnt == USART3_MAX_RX_SIZE) uint8_t tmp = USART3->DR; // dummy read else Usart_3.rx_buffer[Usart_3.rx_cnt++] = USART3->DR; } else // weil nur RXNEIE aktiv ist, dürften wir hier gar nicht landen uint8_t tmp = USART3
-
Thread
LM334Z, LM34DZ, Thermoschaltung
mit der Temperatur steigenden Strom. Der LM334 ist halt zum Messen da, nicht zum Schalten. Ein TMP01 http://www.analog.com/static/imported-files/data_sheets/TMP01.pdf ist beispielsweise zum Schalten da, man stellt bei ihm mit Widerständen ein bei welcher Temperatur das erfolgen soll. Da du nichts
> damit lässt sich doch was anfangen, Der LM358 ist ein halber LM324 und der LM34 ein LM35 in F statt C. http://bastelmolch.ba.funpic.de/temperatur.htm "Hier noch eine sehr genaue Schaltung" und ein Transistor wird auch geschaltet.
-
Thread
AVR-GCC Deoptimierung
in r29,__SP_H__ 42 0008 2297 sbiw r28,2 43 000a 0FB6 in __tmp_reg__,__SREG__ 44 000c F894 cli 45 000e DEBF out __SP_H__,r29 46 0010 0FBE out __SREG__,__tmp_reg__ 47 0012 CDBF out __SP_L__,r28 48
epilogue: frame size=2 */ 59 0020 2296 adiw r28,2 60 0022 0FB6 in __tmp_reg__,__SREG__ 61 0024 F894 cli 62 0026 DEBF out __SP_H__,r29 63 0028 0FBE out __SREG__,__tmp_reg__ 64 002a CDBF out __SP_L__,r28 65 002c
-
Thread
74LS245 zu lahm?
problemlos funktioniert - nun nicht mehr? So sah das übrigens vor meinem '245&Co aus: http://pofo.de/tmp/P8000_WDC_SDCard.pdf
uebrigens meine alte Schaltung die ohne nop()s auskam zw. ASTB setzen und Port lesen: http://pofo.de/tmp/P8000_WDC_SDCard.pdf