-
Thread
IIR Implementation: C-Code verschnellern
symmetrisch machen und in der Mitte zusammenklappen, dann sparst du eine Multiplikation. 8 Tap FIR mit 35kS/s passt auf nen 16MHz Mega32 grad so drauf von der CPU her. Und du hast ja nur 2 Filterkoeffizienten.
> > Welchen Typ hat ADCwert? Wahrscheinlich volatile int32_t. Benutze eine > lokale Variable tmp_ADCwert und setze ADCwert erst am Schluss aller > Berechnungen - wenn Du sie dann überhaupt noch brauchst. Ja, da hab ich tatsächlich die Deklaration vergessen. Ich hatte int16_t benutzt. >
-
Thread
Gy-521 mit MSP430G3 (version 1.5) Launchpad
AcY = "); Serial.print(AcY); Serial.print(" | AcZ = "); Serial.print(AcZ); Serial.print(" | Tmp = "); Serial.print(Tmp/340.00+36.53); //equation for temperature in degrees C from datasheet Serial.print(" | GyX = "); Serial.print(GyX); Serial.print(" | GyY = "); Serial.print(GyY); Serial.print
Es kommen immer die selben Messwerte, AcX = Acy = AcZ = GyX = GyY = GyZ = 0; Tmp = 36.
-
Thread
Fehlermeldung beim Kompilieren mit arduino 1.06
IC:\Program Files\Arduino\libraries\SPI C:\Users\thomas\AppData\Local\Temp\build3060804281612396710.tmp\Firmware.cpp -o C:\Users\thomas\AppData\Local\Temp\build3060804281612396710.tmp\Firmware.cpp.o Firmware.ino: In function 'void loop()': Firmware.ino:95: warning: unused variable 'rpm' C:\Program
Adafruit-GFX-Library-master\Adafruit_GFX.cpp -o C:\Users\thomas\AppData\Local\Temp\build3060804281612396710.tmp\Adafruit-GFX-Library-master\Adafruit_GFX.cpp.o In file included from C:\Program Files\Arduino\libraries\Adafruit-GFX-Library-master\Adafruit_GFX.cpp:35: C:\Program Files\Arduino\libraries\Adafruit-GFX-Library-master
-
Artikel
Diskussion:Soft-PWM
0x39, 0xB9, 0x79, 0xF9, 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5, 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5, 0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED, 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD, 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3, 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3,
; i--; } // Else move channel of maximal value to index `i`. else if( max_channel != i ){ PWM_Slot tmp = channel[max_channel]; channel[max_channel] = channel[i]; channel[i] = tmp; } } // skip channels with a PWM width of zero if( channel[ pwmslots - 1 ].value == 0) pwmslots--; // write values into pwm_slots_config
-
Thread
WordClock mit WS2812
Wc24h-nucleo411.hex] opened successfully. 19:47:11 : [Wc24h-nucleo411.hex] checksum : 0x0053ED7F 19:47:35 : Memory programmed in 7s and 0ms. 19:47:35 : Verification...OK 19:47:35 : Programmed memory Checksum: 0x0053ED7F 19:47:38 : Flash memory [0x08000000:0x08080000] Checksum: 0x076081D7
timers from eeprom reading temp configuration from eeprom ESP8266 LOGGER read rtc: Tu 2000-01-03 02:35:03 update display [/code] Sieht doch eigentlich ganz normal aus, oder?
-
Thread
#include in Makefile Fehler
\include\stdio.h:29:0, from C:/Arduino/hardware/teensy/avr/cores/teensy3/Print.h:35, from C:/Arduino/hardware/teensy/avr/cores/teensy3/Stream.h:24, from C:/Arduino/hardware/teensy/avr/cores/teensy3/HardwareSerial.h:169, from C:/Arduino
\include\stdio.h:29:0, from C:/Arduino/hardware/teensy/avr/cores/teensy3/Print.h:35, from C:/Arduino/hardware/teensy/avr/cores/teensy3/Stream.h:24, from C:/Arduino/hardware/teensy/avr/cores/teensy3/HardwareSerial.h:169, from C:/Arduino
-
Thread
ATOI nur bis 4 Stellen
da so alles eintrudelt. [c] ISR (USART_RX_vect) { uart_buffer[z] = UDR0; { char tmp[20]; sprintf( tmp, "'%c' - %02x\r\n", uart_buffer[z], uart_buffer[z] ); Uart_puts( tmp ); } z++; if (uart_buffer[z-1]==0x00) { z=0; NewValue=1; } } [/c] nicht
30<\r><\n> '0' - 30<\r><\n> '100DAC MAX541 set to: 100;<\r><\n> Beim Senden von 1000 '5' - 35<\r><\n> '0' - 30<\r><\n> '0' - 30<\r><\n> '500DAC MAX541 set to: 500;<\r><\n> Beim Senden von 5000 Werde mir das mal mit dem Oszi anschauen, was da wirklich ankommt... Vielen Dank erstmal für
-
Thread
Atmel AVR Toolchain for Linux
avrasm] #include <avr/io.h> ; Note [1] work = 16 ; Note [2] tmp = 17 inttmp = 19 intsav = 0 SQUARE = PD6 ; Note [3] ; Note [4]: tmconst= 10700000 / 200000 ; 100 kHz => 200000
include/avr/iotn20.h ./avr/include/avr/iousbxx2.h ./avr/include/avr/iox128a1.h ./avr/include/avr/io43u35x.h ./avr/include/avr/iox128b1.h ./avr/include/avr/iousbxx6_7.h ./avr/include/avr/iotn45.h ./avr/include/avr/iotn461.h ./avr/include/avr/io90pwm216.h ./avr/include/avr/ioa6613c.h ./avr/include/
-
Thread
Assembler wieder auf dem Weg nach vorn Gesperrt
; tmpByte3 = ADRESH; // AD Channel 1 ad_acq(1); // Analog Channel 1 lesen sendByte(ADRESL); crc += ADRESL; tmpByte3 |= ADRESH << 2; // // send Byte 3 with CRC tmpByte3 |= (GPIO & 0b00001100) << 2; // Digitaleingänge in Bits 4,5 speichern crc += tmpByte3; tmpByte3 |= (crc & 0b00000011) << 6; sendByte(tmpByte3); } } [/c] Der XC8
-
Thread
Kann man folgenden Code platzsparender schreiben
Schau mer mal [c] void Send(uint16_t data) { uint16_t tmp; PORT_DISPLAY &= ~(1<<DISP_CS); for(int i=15; i>=0; i--) { tmp = data & (1<<i); PORT_DISPLAY &= ~(1<<DISP_CLK); if(tmp > 0) PORT_DISPLAY |= (1<<DISP_DATA);
24 ) & 0xFF); msg[4] = 0x00; for(j=0; j<5; j++) { for(i=0; i<8; i++) { tmp = (msg[j] & (1<<i)); PORTD &= ~(1<<PIN_WCLK); if (tmp > 0) PORTD |= ((tmp >> i) << PIN_DATA); else PORTD &= ~(1<<PIN_DATA); PORTD |= (1<<PIN_WCLK)
-
Thread
C - Funktion von Strlen verstehen
strlen) .type _U(strlen), @function _U(strlen): X_movw ZL, src_lo .L_strlen_loop: ld __tmp_reg__, Z+ tst __tmp_reg__ brne .L_strlen_loop ; Z points one character past the terminating NUL ; return Z - 1 - src = (-1 - src) + Z = ~src + Z com src_lo com src_hi add src_lo
64GiB checks. [code] (A) (B) (C) (D) (1) 3.70 43.72 19.31 12.84 (2) 6.15 43.35 20.86 13.04 (3) 10.56 45.25 24.05 13.48 (4) 10.06 41.28 18.31 11.26 2nd run: (A) (B) (C) (D) (1) 3.71 43.77 19.35 13.65 (2) 6.17 43.41 20.91 12.96 (3) 10.67
-
Thread
AVR code produziert Fehler
-fI -o "Lichtmessgerät.hex" -m "Lichtmessgerät.map" -l "Lichtmessgerät.lss" -S "Lichtmessgerät.tmp" -W+ie -itn26def.inc -d "C:\Users\RFr\Documents\Atmel Studio\6.2\Lichtmssgerät\Lichtmessgerät\Lichtmessgerät\Debug/Lichtmessgerät.obj" "C:\Users\RFr\Documents\Atmel Studio\6.2\Lichtmssgerät\Lichtmessgerät
zwischen dir und mir besteht darin, dass meine Schritte größer sind. Ich hab dir allerdings so ungefähr 35 Jahre Erfahrung voraus. Aber die Grundtechnik des schrittweisen arbeitens mach ich genau so, wie du es machen solltest.
-
Thread
Problem mit Assembler (ATmega8 / AVR-GCC)
00 27 eor r16, r16 6: 07 bf out 0x37, r16 ; 55 8: 05 bf out 0x35, r16 ; 53 a: 08 bf out 0x38, r16 ; 56 0000000c <loop>: c: 06 b7 in r16, 0x36 ; 54 e: 02 bf out 0x32, r16 ; 50 10: 00 c0 rjmp .+0 ;
Ich hab mir da ein mini-Shellscript geschrieben. [code]#!/bin/sh avr-gcc -mmcu=$2 -c $1 -o tmp.elf -O0 -Wall avr-objcopy -R .eeprom -R .fuse -R .lock -R .signature -O ihex tmp.elf flash.hex rm tmp.elf[/code] Anwendungsbeispiel: [code]script.sh sourcecode.sx atmega8[/code] Danach hat man
-
Thread
Oberflächentemperatur von PCB messen
LM35D analoger Sensor im SO8-Gehäuse.
mehr Geld zur Verfügung steht und nicht abgeglichen werden soll, dann könnte man sowas wie den TI TMP100 nehmen, welcher per I2C ausgelesen wird: http://www.ti.com/product/tmp100
-
Thread
Verzweifelt keine Anzeige am LCD
1) LCDcmd: ; command byte cbi PORT_LCDrs,LCDrs push tmp0 rcall LCDb pop tmp0 andi tmp0,$FC -------->?? breq pc+2------------------> pc+2?? ret 2) LCDn: ; nibble sbi PORT_LCDen,LCDen -----> Enable
wird gemaess bit 3 > von tmp0 gesetzt. Hier gibt es auch andere und vielleich auch bessere > Lösungen, aber es funktioniert. sbrc tmp0,3 --Bit 3 welches Bit ist damit gemeint??
-
Thread
Bus Protokoll Körting/EBV Gamma 2B
0 0 0 0 0 0 0 0 0 52 10 0 10 0 0 0 0 0 0 0 0 0 0 0 62 4C ... AußenT: 15,0 KesselT: 44 VorlaufT: 35 Brenner hat gestoppt 3.) ... 7B 10 1 10 0 0 0 0 0 0 0 0 0 0 0 7E 10 1 10 0 0 0 0 0 0 0 0 0 0 0 68 4C ... AußenT: 9,5 KesselT: 47 VorlaufT: 40 4.) ... 77 10 0 0 0 0 0 0 0 0 0 0 0 0 0 68 10 0
std::string s; for (size_t z = 0; z < len; ++z) { char tmp[4]; snprintf(tmp, sizeof(tmp), "%02X", ptr[z]); if (!s.empty()) s.push_back('.'); s += tmp; } return s; };
-
Thread
Konstantstromquelle Bausatz für PT100/1000
ti * (ti - 100.0) + ti * ti *ti); tnew = ti - (((R0 * tmp1) - rx) / (R0 * tmp2)); }while(fabs(ti - tnew) > 0.2); } else { float tmp; tmp = -R0 * KOEFF_A; tmp += sqrt(R0 * KOEFF_A * R0 * KOEFF_A - 4 * R0 * KOEFF_B * (R0 - rx)); tnew = tmp / (2 * R0 * KOEFF_B); } return tnew; } float tmp = (float) Summe / (Anzahl * ( 1 << N-Bit(Aufloesung)) r = tmp * R0 /( 1.0 -tmp) t = R2T(rx) [/c] Wir wollen hier PT1000 bei LN2 Temperaturen
-
Thread
C versus Assembler->Performance Gesperrt
.L2: ldd r25,Y+1 ldd r24,Y+2 cp r25,r24 brne .L3 nop /* epilogue start */ pop __tmp_reg__ pop __tmp_reg__ pop __tmp_reg__ pop __tmp_reg__ pop r29 pop r28 ret .size SysTick_Handler, .-SysTick_Handler .ident "GCC: (GNU) 4.8.1" .global __do_clear_bss [/avrasm
[/code] diesen mit 9 Takten doch wesentlichen schnellern Code produziert: [code] clr __tmp_reg__ lsl r24 rol r25 rol __tmp_reg__ lsl r24 rol r25 rol __tmp_reg__ mov r24,r25 mov r25,__tmp_reg__ [/code]
-
Thread
Kleines Tiny13 Sensorboard
werden soll die Schaltung noch mit Software zum zyklischen Einlesen des Lichtsensors sowie eines LM35 (Temperatur) an CON2 und synchrone Messwerte-Ausgabe auf PB0/PB2 via CON3. Natürlich in Asm ;-) Da die Platine demnächst 'in Produktion' geht können sich Interessenten gern noch via Mail melden.
TSL13) Anforderung oder Implementierungsdetail? >; PB1: MISO/DINP1-LOW PB4: AINP-CHANNEL1 (LM35) Anforderung oder Implementierungsdetail? >; PB2: SCK/DOUT-CLOCK PB5: RESET/DINP2-LOW Anforderung oder Implementierungsdetail? >;Systemtakt-Fuses: 128 kHz INTRCOSC, NO CKDIV8 = real
-
Thread
Zeitverzögerung von 800ms einbauen (Assembler)
; 6400000 Zyklen: ; ----------------------------- ; warte 6399996 Zyklen: ldi TMP1, $F1 delay0: ldi TMP2, $35 delay1: ldi TMP3, $A6 delay2: dec TMP3 brne delay2 dec TMP2 brne delay1 dec TMP1 brne delay0 ; --------
; 6400000 Zyklen: ; ----------------------------- ; warte 6399996 Zyklen: ldi TMP1, $F1 delay_0: ldi TMP2, $35 ;Hexadezimale schreibweise delay_1: ldi TMP3, $A6 delay_2: dec TMP3 brne delay_2 dec TMP2 brne delay_1 dec TMP1
-
Thread
Universaltrafo für Netzteil - wie anschließen?
Hier findest du alle Angaben die du benötigst: http://www.mikrocontroller.net/attachment/259814/tmp_9333-IMG_20150616_164552534_HDR663548797.jpg
Im Leerlauf können da bequem 18V rauskommen. * 1,4 ergibt ~25V, d.h. es sollte mindestens ein 35V Elko sein.
-
Thread
Atmega8 Encoder + USB HID spinnt manchmal
==2 && val_tmp1==0) || /*(val==0 && val_tmp==1) ||*/ (val1==1 && val_tmp1==3) ) { return 2; } val1 = val_tmp1; } if(val2 != val_tmp2
==3 && val_tmp==2) ||*/ (val2==2 && val_tmp2==0) || /*(val==0 && val_tmp==1) ||*/ (val2==1 && val_tmp2==3) ) { return 4; } val2 = val_tmp2
-
Thread
[V] Auflösung alte PC Hardware Komponenten und alte Komplett-PCs incl Zubehör
COSTA RICA - 2.00 GHZ/512/800/06 Dell Silicon Image ORION ADD2-N DUAL PAD x16 Card Sil-SC0066-B1-TMP PCB Rev 1.45 DVI Fritz!Card PCI V2.1 Fritz!Card PCI (AVM ISDN Controller) 256MB CL3 PC2-3200U DDR2-400 RAM Micron MT8HTF3264AY-40EB3 Kingston 1GB DDR2-RAM 1.8V KTD-DM8400/1G EM 5014 PCI-Karte (
COSTA RICA - 2.00 GHZ/512/800/06 Dell Silicon Image ORION ADD2-N DUAL PAD x16 Card Sil-SC0066-B1-TMP PCB Rev 1.45 DVI Fritz!Card PCI V2.1 Fritz!Card PCI (AVM ISDN Controller) 256MB CL3 PC2-3200U DDR2-400 RAM Micron MT8HTF3264AY-40EB3 EM 5014 PCI-Karte (1 x Line / 1 x Phone) Fritz!Card PCI V2.1
-
Thread
(Android) Bluetooth Chat Example modifizieren
"create ConnectedThread: " + socketType); mmSocket = socket; InputStream tmpIn = null; OutputStream tmpOut = null; // Get the BluetoothSocket input and output streams try { tmpIn = socket.getInputStream(); tmpOut = socket.getOutputStream(); } catch (IOException e) { Log.e(TAG, "temp sockets not created", e); } mmInStream = tmpIn; mmOutStream
-
Thread
UV-Laserdrucker II
schwingen darf. Ich bin aber, wenn ich deine bisherigen Belichtungen sehe der Meinung, dass du für 35u Platinen hier eher an die Ätzgrenze kommst. 4/4 mil in einer 35u Platine bedeutet, dass du 100u Struktur ISOTROP ätzt, da bleiben 100-35-35= 30u Restkupfer ohne Resistübermassbelichtung. Ohne
Klar. > Ich bin aber, wenn ich deine bisherigen Belichtungen sehe der Meinung, > dass du für 35u Platinen hier eher an die Ätzgrenze kommst. > > 4/4 mil in einer 35u Platine bedeutet, dass du 100u Struktur ISOTROP > ätzt, da bleiben 100-35-35= 30u Restkupfer ohne > Resistübermassbelichtung
-
Thread
China PCB Hersteller der Sprint- Layout verarbeitet ?
hier) Schall und Rauch. Der Inhalt ist entscheidend. (Du meinst wirklich, dass er auch GERBER.TMP bekommen müsste?)
Bei Aliexpress kann auch per Giropay oder Sofort Banking zahlen. Wäre das eine Alternative zu den 35$ ?
-
Thread
Dumme Frage zum "C" mit AVR's
Low } // alternativ: static inline void setTestpin( const uint8_t val ) { register uint8_t tmp = PORTB; if( val != 0 ) tmp |= (1 << PB1); //PB1 High else tmp &= ~(1 << PB2); //PB2 Low PORTB = tmp; } [/c] oder auch sehr verbreitet: [c] #define TEST_PORT
interrupts zu Unterbinden: [c] static inline void setTestpin( uint8_t val ) { register uint8_t tmp = PORTB & (1 << TESTPIN); if( val != 0 ) val = (1 << TESTPIN); if( ( tmp ^ val ) != 0 ) PINB = (1 << PB1); } [/c] Damit sind zumindest die einzelnen Bits auf einem Port
-
Thread
Adressübergabe einer Variable an eine Funktion
break; default://menuepunkt = 0; break; } } sprintf(tmp, "Unterpunkt: %d\n", unterpunkt); display_write(tmp,0,5); sprintf(tmp, "Menuepunkt: %d\n", menuepunkt); display_write(tmp,0,6); } // Ende While-Schleife } // Ende main [/c]
zeigt das hier an: ask "RunOutputFileVerifyTask" Program Memory Usage : 11520 bytes 35,2 % Full Data Memory Usage : 1822 bytes 89,0 % Full kann das daran liegen?
-
Thread
RFM02 hängt beim senden (Bascom)
Byte Dim Cmd(2) As Byte Declare Sub Fsk_send(byval Fsk_byte As Byte) Declare Sub Rf_cmd(byval Tmp As Word) As Word 'config SPI Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 16 , Noss = 0 'Config Spi = Soft , Din = Pinb.4 ,
Reset Fsk End If Shift Fsk_byte , Left Next End Sub Sub Rf_cmd(byval Tmp As Word) As Word Cmd(2) = Tmp And 255 Shift Tmp , Right , 8 Cmd(1) = Tmp Spiout Cmd(1) , 2 End Sub[/code] Sieht hier jemand was Falsch läuft? Danke schonmal für eure Hilfe.
-
Thread
Überhitzungsschutz für LED realisieren
auch automatisch abzuschalten, wenn die Kühlung nicht reichen sollte. 1. Idee war mit Sensor wie LM35, Komparator, TL431, Mosfet zum Trennen. Werden schon ein paar Teile 2. Ansatz einfach gleich die LED-Spannung am Komparator auswerten. Ist ja bekanntlich auch schon "etwas" temperaturabhängig. 3. ?
übertemperaturgeschützte MOSFETs erst bei 200 GradC abschalten, braucht man wohl mindestens 2 Bauteile, eher 4. Ein TMP709 lässt sich per externem Widerstand einstellen und schaltet direkt den MOSFET der die LED abklemmt. Ein MAX6514 wird im EEPROM programmiert, braucht einen Widerstand als pull up für den MOSFET.
-
Thread
Wie verbaut man so was
Wie wärs als alternative mit dem TMP100 von TI? http://www.ti.com/product/tmp100 Den gibts meines Wissens nach zwar nicht bei Reichelt, aber irgendwo bekommt man die Dinger schon her.
empfehlen: http://shop.emsystech.de/de/SHT21-Breakout-Board?xf4146=1ea36be37209161f5a5d9d5bd9ce2d35