-
Thread
PWM Servo Schieberegister
Bernhard Mayer schrieb: > Du hängst an jedes bit des Schieberegisters ein Servo. > Dann schiebst du ein einzelnes 1-bit durch das ganze register, d.h. es > ist immer nur ein ausgangsbit des rigisters auf 1. > Du schiebst also dieses bit ins erste
der Ablauf so aussehen: Timer initialisieren (allgemeine Einstellungen: Modus und Taktfrequenz setzen) Schleife: Schieberegister auswählen, dessen Servos ihren Impuls erhalten sollen (Index). Compare-Wert des ersten Servos ins Vergleichsregister eintragen Timer starten Warten, bis 8-Bit-Sequenz
-
Thread
OC0A & OC0B gleichzeitig toggeln?
invertiertes. Ich wollte das ja realisieren indem ich einen Ausgang initial high und den anderen low setze. Kann es sein, dass dadurch: "If one or both of the COM0A1:0 bits are set, the OC0A output overrides the normal port functionality of the I/O pin it is connected to". - meine high/low Initialisierung
invertiertes. Ich wollte das ja > realisieren indem ich einen Ausgang initial high und den anderen low > setze. Ne, im PWM-Mode ist das Ausgangsregister wirkungslos. Du kannst aber einen PWM-Ausgang auf invertiert setzen, das geht in allen PWM-Modi.
-
Thread
STM32 SPI zu viele Clocks
Traubensaft .. schrieb im Beitrag #4900953: doch noch ein Versuch: Setz mal hinter das bsy-wait noch ein delay von ca. 100us. Dann hat der Sensor genug Zeit, die gesendeten 16bit zu verarbeiten. Wenn das klappt, das delay reduzieren.
Zeitintervall aufgezogen. In der Timer CB Funktion dann 2 Phasen. Phase 1: HAL_SPI_Receive_IT() mit 16bit Betrieb, -> Phase 2 Phase 2: SPI Enable auf 0 setzen, -> Phase 1 Aber das SPI enable bit Hardcoremaessig auf 0 zu setzen wenn man eigentlich streng nur den ungepatchten HAL nutzen will ist auch
-
Thread
Daten für Drucker abfangen
Danke für die Antworten erstmal, Ich versteh das jetzt so: 1. Ich bekomme 8Bit auf dem Parellel Port und direkt danach das strobe Signal vom PC. 2. Ich setze sofort Busy auf High. 3. Ich verarbeite die 8 Bit. 4. Ich setzte busy wieder auf Low und warte auf die nächsten
bouni) >Hab ich das jetzt so richtig verstanden ? Fast. Auf Strobe=1 warten Busy auf 1 setzen Daten lesen und an den UART ausgeben Busy auf 0 setzen MfG Falk MFG Falk
-
Thread
10Bit-ADC-Werte in 16Bit-Werte des Zweierkompliments konvertieren
Das Schieben ist überflüssig, für left adjusted einfach nur das Bit des ADC setzen. Peter
>Das Schieben ist überflüssig, für left adjusted einfach nur das Bit des >ADC setzen. und dann reicht [c] int 16_t adc_result = -ADC; [/c] um das zu erreichen, was du möchtest. Das das 2-er Komplement ja nichts anderes ist, als Darstellung negativer Zahlen
-
Thread
12bit DAC
TDA1543, Audio DAC, 16 Bit Stereo, 75 Cent, hab ich gute Erfahrungen mit gemacht. Ausgangssignal ist über Opamp skalierbar, uni- oder bipolar, bei mir z.B -15V bis +15V.
TLV5638 von Texas kann ich nur empfehlen. Ist ein Dual 12Bit DAC mit Interner programmierbarer Referenz und im SO-8.
-
Thread
fuse bits.. hilfe...
ah mit externen takt geht es.. aber wie muss ich die fuses jetzt setzen das es passt.???
crystal oszillator. 3. Wenn du das AVR-Studio hast schau mal dort unter AVR-ISP wie man die Fuses setzen muss. Seb
-
Thread
AD Wandler welche Bits...
Teste gerade mein AD-Wandler-Programm auf AVR-Studio. Wenn die Konvertierung abgeschlossen ist, setze ich ADIF auf 1, um den Abschluß zu simulieren. Danach geht's weiter im Programm. ADIF wird dann wieder zu 0 gesetzt (über ADCSRA =!(1<<ADIF);) Dabei werden aber alle anderen Bits, ADEN, ADPS1,0
Müll kommt. Oder? Gibt es eine Möglichkeit, dies im AVRStudio zu sehen, ohne dauernd selbst die Bits setzen zu müssen? Gruß, Andreas
-
Thread
24bit ADC Schaltung qualifizieren
Schaltungsaufwand !bei 24bit!.. Genauigkeit der Clock spielt bei 24bit sicher auch eine nicht unwichtige Rolle..
Was ? Einen 24bit ADC selbst bauen, mit 10Sample ? Aeh ja. Viel Glueck. Da wird's dann mit vielleicht 12 bit Schluss sein...
-
Thread
AVR-C Anweisungsreihenfolge NICHT dem Compiler überlassen..
Besonders wenn es nötig ist; ich weiß noch nicht genau: Muss ich jetzt in der main() cli() und sei() um >8bit-volatiles, die in der ISR benötigt werden, setzen? ..Damit sie nicht von der ISR zerpflückt werden? >Konsequenz: Beschäftige dich mit lockless queues o.ä. Werd ich mir anschauen, danke. Kennt
Priorität... Hans W. schrieb im Beitrag #5429872: > Muss ich jetzt in der main() cli() und sei() um >8bit-volatiles, > die in der ISR benötigt werden, setzen? ..Damit sie nicht von der ISR > zerpflückt werden? Ja, denn alles, was nicht inhärent atomisch ist, muss vor asynchronen Zugriffen geschützt
-
Thread
Atmega32, Poti, ADC, Poti-am LCD ausgeben
Dich. Du kannst das Ergebnis (sofern Du keine linksbündige Ausgabe gewählt hast - was Du leider mit Setzen des ADLAR-Bits gemacht hast ...!!) als "normale" 16-Bit-Zahl ohne Vorzeichen verwenden und mit SPRINTF für die Ausgabe umformen. DH1AKF liest den jeweiligen ADC-Kanal so: [c] uint16_t ReadADC
Du kannst das Ergebnis (sofern Du keine linksbündige Ausgabe > gewählt hast - was Du leider mit Setzen des ADLAR-Bits gemacht hast > ...!!) Und ADLAR kenne ich sehr wohl :-)
-
Thread
PIC10Fxxx oder PIC18Fxxxx für den Einstieg?
im > Befehlswort ein paar Bits zu sparen. Da schlepepn sie halt die ganzen > Altlasten mit. Ich wuerde allen Pic-Meckerfritzen hier empfehlen sich direkt mit Microchip in Verbindung zu setzen und dort mal ordentlich auf den Tisch
Ich wuerde allen Pic-Meckerfritzen hier empfehlen sich direkt mit > Microchip in Verbindung zu setzen Wozu? Ich verwende einfach keine 8-Bit PICs. Fertig. Ist ja nicht so daß es keine Alternativen gäbe.
-
Thread
Assembler und AVR
Das Ganze ist also äquivalent zu: [avrasm] $asm push r24 LDI R24, $79 ' WD auf 8 Sekunden setzen und starten STS 65, r24 STS 65, r24 pop r24 $end Asm [/avrasm] Für deine 2 Sekunden müsstest du den Timer auf 7 setzen: [avrasm] $asm push r24 LDI R24, $57 ' WD auf 2 Sekunden setzen
#5340469: > SRAM => Register, direkt LDS r1,k65535 > > Heisst das, dass das Zielregister 16 Bit hat? Nein, das Zielregister ist ja r1, das hat nur 8 Bit. Rechts steht dagegen eine /Adresse/ (von der die Daten im RAM gelesen werden sollen), und die hat 16 Bit.
-
Thread
Hackbarer(?) 21 EUR Quadcopter
SWD_DIO_PIN, buf & 1); pin_write(SWD_CLK_PIN, 1); } } static void read_bits(size_t bits, int silent) { uint8_t val = 0; pin_configure(SWD_DIO_PIN, SWD_MODE_INPUT); size_t bit; for (bit = 0; bit < bits; ++bit) { pin_write
gesetzt. ->connect-program_fuses_to_protect-erase-disconnect Verbinden, Read protect fuse setzen und disconnt. Read protect war nicht gesetzt. Bit 0- SWDIO Bit 1- SWDCLK Bit 2- Reset (wird nie ausgelöst)
-
Thread
Bootloader flasht schlampig - Code zerbröselt nach 3 Wochen
Spricht was gegen das grundsätzliche Setzen von "Brown Out Detection" ? Gibt es Situationen, mit denen man sich Probleme einhandeln kann? Ansonsten habe ich wieder was gelernt und werde BOD immer setzen. Danke und Gruß Thomas
Vollgasstellung bricht die uC-Spannungsversorgung um 1V ein dann könnte man BOD ja auch auf 2,x Volt setzen. Gibt es sonst irgendeinen Grund warum man das Bit überhaupt braucht, also warum BOD nicht fest verdrahtet ist?
-
Thread
8 Kanal 50Ms/s AVR Logic-Analyzer
werden müssen und dann auch nur ein wechsel von "0" auf "1" eines bestimmten Bits erkannt wird. ich möchte jetzt z.b. durch meine Triggerlogik erreichen das die Aufzeichnung startet, sobald Bit 1 "0" wird, egal was die anderen 7 Bits grad treiben. Wie müsste ich dann Triggerbyte
nach Flanken high ->low oder low->high findet gar nicht statt. In deinem Beispiel stellst du also Bits 2-8 auf X. Diese Bits werden dann vom AVR in Maske _und_ Triggerbyte auf high gesetzt, sind am HC688 also immer passend. Das Bit 1 setzt du in der Software auf low. Der AVR setzt dann Maskenbit 1 auf
-
Thread
Atmega8 16Mhz Quarz Fusebits setzen
) [code] #!/bin/sh prg="adude" # help() { echo "prg_fusebit_uc -- read and write fuse bits of the atmega8" echo "" echo "Usage: prg_fusebit_uc [-hu] -r|-w Freq" echo "" echo "OPTIONS: -h this help" echo " -r read fuse bytes" echo " -u use uisp instead of
hier ein Häkchen machen muss bzw. ein Häkchen rausnehmen muss bzw. dass im FuseByte dieses und jenes Bit gesetzt sein muss.
-
Thread
MSP430x169 und TIMERA compare register
Zu der Timer-Geschichte: Durch das Capture hast Du in CCR0 den Wert der Bit-Time... gut! Diesen Wert erstmal in eine Variable sichern, da wir CCR0 ändern müssen! Jetzt willst Du 1/2Bit-Time Verzögerung, also: - CCR0 auf 1/2 Wert setzen - keinen Interrupt verwenden, sondern
while(!(TACTL & TAIFG)); // warten bis Timer = CCR0, // d.h. 1/2Bit-Time ist um. [/c] - CCR0 wieder auf volle Bit-Time setzen - Timer_A Interrupt verwenden ( *nur* den!) [c] TACTL |= TACLR; // Timer nullen TACTL &= ~TAIFG; //
-
Thread
avr-libc alternativen
< (size * bit)); } int main () { // Setze Bits 7-9 vom Register auf 5. setBits (someHardwareRegister, 7, 3, 5); }[/c]So kann man im User-Code recht praktisch einzelne Bits von Registern setzen, unabhängig
| (val << (size * bit)); > } > > int main () { > // Setze Bits 7-9 vom Register auf 5. > setBits (someHardwareRegister, 7, 3, 5); > }So kann man im User-Code recht praktisch einzelne Bits von Registern > setzen
-
Thread
XP: Checkdisk beim Boot
Das Dirty-Bit kann man via "fsutil" abfragen und setzen: [code] fsutil dirty query c: [/code] [code] fsutil dirty set c: [/code] ...zeigt fsutil an dass das Dirty-Bit gesetzt ist? Falls nicht: Setz es einfach
falsch ist, so what? Beschwere dich bei der Chip. > und beharrst darauf, daß auf WinME > keine 64-Bit-Emulation unter VMware möglich ist. Auf einem 32-Bit WinMe mit einem 32-Bit Prozessor wirst du wohl schwerlich eine 64-Bit Emulation hinbekommen. Woher soll der Proz. plötzlich 64-bit breite Register
-
Thread
Raceboard mit Zeitanzeigen
auftritt. Ich kann es nur nochmal wiederholen: 14 Digit * (7 Segmente + DP) = 112 CLK. Bit entsprechend seinem Wert setzen bzw. löschen, 100ms warten, CLK toggle, 100ms warten, CLK toggle, 100ms warten. Wenn Byte zu Ende, Latch toggle, 100ms warten, Latch toggle, wieder 100ms warten
Code und Arduino-shiftOut ist, dass Deine Funktion mit der Logik arbeitet: - Clock-Pin auf Low - Bit-Value setzen - Clock-Pin auf High Und Arduino-shiftOut shiftet wie folgt: - Bit-Value setzen - Clock-Pin auf High - Clock-Pin auf Low Beim Arduino-shiftOut muß deshalb vor dem ersten Funktionsaufruf
-
Thread
Brötje ISR Plus Kommunikation / LPB
mal auf 0 runtergezogen wurde. Wenn ja - mit den warten neu anfangen. Wenn nicht wird das erste Bit gesendet. ( Startbit ) Jedes gesendete Bit wird ( wegen Bus ) ja sofort auf der Empfangsleitung wieder ankommen. Man schaut nach, ob das gesendetet Bit mit dem empfangenen Bit übereinstimmt. Wenn
stimme mit deiner Interpretation überein. Zu ergänzen ist noch dass die Nullwerte ("--:--") durch Setzen des 0x80-Bits in der Startzeit kodiert werden. (0x98 in deinem Dump). Harald, bzgl. der Master-Feldliste: - Ein definierter Trenner ("hier beginnt ein neues Feld") wäre günstig. Im Zweifelsfall
-
Thread
STM32L152RC HSI
Hi also es sieht wie folgt aus: RCC->CFGR |= RCC_CFGR_SW_HSI (ist gleich zu setzen mit 0x00000001) Das bit ist gestzt. RCC->CFGR |= RCC_CFGR_SWS_HSI (ist gleich zu setzen mit 0x00000001) Das bit ist auch gesetzt. Das ergibt zusammen 0x00000005. Genau das was mir auch der
Wie setze ich die Bits den richtig? lg Mathias
-
Thread
4 Bit Analyser
Eugen T. schrieb im Beitrag #6196682: > 4 Bits (4 Ports) gleichzeitig > einlesen und damit als Variable arbeiten. Für 1 Byte (8Bit) habe schon > etwas gefunden Warum liest du nicht diese 8 Bit ein und verwendest nur deine 4 benötigten? z.B
In ASM liese ich auch 8 bits ( 1 Port). Nut brauche ich davon nur 4 und den Rest setze ich einfach auf 1111. Wie kann ich soetwas in Arduino machen?
-
Thread
LCD 202A Conrad und Atmega 8
LCD_PORT |= (data>>(4-LCD_DB)); // Bits setzen lcd_enable(); } //////////////////////////////////////////////////////////////////////////////// // Initialisierung: muss ganz am Anfang des Programms aufgerufen werden. void lcd_init
Datenbyte an das LCD void lcd_data( uint8_t data ) { LCD_PORT |= (1<<LCD_RS); // RS auf 1 setzen lcd_out( data ); // zuerst die oberen, lcd_out( data<<4 ); // dann die unteren 4 Bit senden _delay_us( LCD_WRITEDATA_US ); } //////////////////////////
-
Thread
PIC 10F200, Anfänger
Wenn beides passierte erst nach 3200ms wieder neu auf Ereigniss warten. loop und eingang 1 setze bit 1 und eingang 2 setze bit 2 bit 1 und bit 2 setze bit 3 undnicht bit 3 goto end warte 2000ms setze ausgang 1 warte 1000ms setze ausgang 2 warte 200ms reset bit 1 reset bit
Du es schaffts die passenden Register und Bitmuster mit Hilfe des Datenblattes zu finden und zu setzen. Geht sogar noch kompfortabler mit: MPLAB XC8 C Compiler User's Guide 5.3.5 Configuration Bit Access Ein wenig must Du Dich schon mit Toolchain und Device beschäftigen um weiterzukommen.
-
Thread
Anfängerfrage STM32
oder will sie mich als Benutzer da nicht ranlassen? Aber das sieht jetzt gut aus mit GPIO_SetBits(GPIOD,(GPIO_Pin_13 << 16) | ((GPIOD->ODR & GPIO_Pin_13) ^ GPIO_Pin_13)); Was aber nach meinem Geschmack ist daß so das Setzen beliebig vieler Bits in einem Port atomar ist.
man dessen beide Hälften zusammen atomar schreiben kann. Eben deshalb sind die Ports der STM32 16 Bits breit, nicht 32 Bits. Nur mit dem vollständigen BSRR kann man mehr als ein Bit in einem Port atomar auf einen beliebigen Wert setzen: GPIOx->BSRR = mask << 16 | value; Aber nein, da musste der
-
Thread
STM32 USB Übertragungsproblem mit Code von S.F.
// Initialize system timer SysTick_Config(SystemCoreClock/1000); //[ALEX] SET_BIT(RCC->APB2ENR, RCC_APB2ENR_SYSCFGEN); while (!READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SYSCFGEN)); //[ALEX] SET_BIT(RCC->APB1ENR, RCC_APB1ENR_PWREN); while (!READ_BIT(RCC->APB1ENR, RCC_APB1ENR_PWREN
Enumeration. Bei dir würde das so aussehen: [c] void SystemInit() { // GPIOA12 auf OpenDrain und Low setzen SET_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPAEN); MODIFY_REG(GPIOA->CRH, GPIO_CRH_CNF12 + GPIO_CRH_MODE12, GPIO_CRH_CNF12_0 + GPIO_CRH_MODE12_1); WRITE_REG(GPIOA->BRR, GPIO_BRR_BR12); } int main
-
Thread
Sinustest des vs1011
SCI_PORT &= ~(1<<SCI_PIN); //SCI aktivieren SPSR = 0 << SPI2X; //SPI Auf halbe geschwindigkeit setzen (nur notwendig wenn Quarz-frq. <24.576MHz) loop_until_bit_is_set(PIND, PD5); //Auf DREQ warten vs1011_SCI_write(SCI_MODE, MODE_TESTS); //SM_SDINEW |(für SM_TESTS 5. Bit von 0-15 setzen) vs1011_SCI_write(SCI_CLOCKF, 0x1800+0x8000); //12288000 / 2000 + doublespeed bit SCI_PORT |= 1<<SCI_PORT; //SCI deaktivieren SDI_PORT &= ~(1<<SDI_PIN); //SDI aktivieren
-
Thread
AT90USB162 Endpoint Interrupts funktionieren nicht
return; } } wfb(UEINTX, RXOUTI); clr(UEINTX, RXOUTI); } [/c] set und clr setzen bzw. löschen nur Bits in Registern. wfb ist lediglich eine Funktion die so lange eine schleife ausführt, bis ein Bit gesetzt wurde.
Normen überein, also, wo ist hier das Problem ? Hab ich vergessen wärend des Sendens irgend ein Bit zu setzen oder so ?
-
Thread
1V am Ausgangsport des Atmega8
; Wenn nicht gleich, dann springe zu ende1 ldi r18, 0b10000000 ; Wenn gleich, dann setze Bit7 auf High ; An PortB Pin7 hängt eine astabile Kippstufe ; welche meine BCD-Decoder ein- und ausschaltet ;********Ausgabe meines Zahlenwertes an die BCD-Decoder************ ende1
welche Parametrierung nun richtig ist, um die Funktionalität zu erhalten. Daher mit And und Or nur die Bits löschen oder setzen, die benötigt werden. Gruß oldmax
-
Thread
SVPWM Ansteuerung eines BLDC
einige Variablen, die mit dem Beobachter zu tun haben zu NaN wenn ich die Variable < 0.15 und > 0 setze. An anderen Stellen werden keine Divisionen gemacht. Setze ich diese Variable negativ, werden einige Variablen nicht Nan sondern Infinity. Könnte es sein, dass die float Verarbeitung bzw. die FPU
Ok das sieht doch so aus als wenn die Chinesen das ganz gut gemacht hätten. die letzten 2 Bits scheinen zuwackeln du hast also gut 10Bit Auflösung, Mehr hat der VESC auch nicht. Läuft der Beobachter aus dem Paper schon?
-
Thread
mit welchen Lock Bits ist ein ATmega noch lesbar?
weiß ich, dass dieses File nutzbar sein wird? Sehe ich das richtig, dass ich EEPROM, Flash, Fuse Bits und Lock Bits kopieren würde und dann sollte ich einen identischen Baustein haben?
das Board hier trotz "Trolling" ist. ;-D Wie würdet Ihr ne Fuse konstruieren, das entsprechende Bit im Sperrfalle auf "H" oder "L" setzen?
-
Thread
AVR: Zufallszahlengenerator - zufälliger Startwert
Bit stabil hin, das ist nun bei 10 bit auch alles andere als schwer.
zu verbrauchen - Clock Scaling - Verwende einen sicheren Cyphermode, kein AES-ECB. - Lock-bits setzen, um Auslesen des Flash zu verhindern. Wirkt allerdings nur begrenzt, da Decapping immer noch möglich. Bedenke bei alledem: AVRs sind *nicht für Sicherheit* gebaut. Sie haben keine symmetrischen
-
Thread
AVR Timer 1 Normal/CTC Mode ?
genau verstehst du unter 'alles'? Die Pins werden nicht zurück gesetzt. Die hast du mittels COM Bits so eingestellt, dass sie vom Compare Match getoggelt werden. Und genau das machen sie auch. VOn eiem 0-Setzen bei Timer Overflow steht da nichts. Du liest Dinge aus dem Datenblatt heraus, die da
1 Overflow Interrupt PORTB &= ~(1 << 5); // Pin von A zurück auf 0 setzen, Port.B.Bit5 = OC1A PORTB &= ~(1 << 6); // Pin von B zurück auf 0 setzen, Port.B.Bit6 = OC1B // Pin von B zurück auf 0 setzen, Port.B.Bit7 = OC1C OCR1A = 16384;
-
Thread
ATMega324P und USART Probleme
Programm? Genau das was ich sehe, ich kann nicht glauben das ich soviel Zeit damit verbracht habe um bit im UCSR0C Register zu setzen... Das bedeutet im Lerneffekt: Das setzen von RXEN0 und TXEN0 im UCSR0B Register reicht aus um USART0 fuer 9600bps und einem Stoppbit zu initialisieren? Das Datenblatt
hier ist auch nicht richtig: ldi r16, RXC0 > sts UCSR0A, r16 Das Datenblatt besagt bit 7 vom UCSR0A muss gesetzt sein.. Setze ich es nicht ist das Resultat das selbe.
-
Thread
Probleme bei Programm (Assembler)
set bit 0b010000000 ... damit hast du ja aber kein ziel gesagt, in welchem register das bit eigentlich gesetzt werden soll. Außerdem ist 0b01000000 eine Byteangabe, nämlich bit 6, das du jetzt setzen willst
high-aktiv... sollten die Taster nun low-aktiv sein.. müsste ich ja nur bei dem CPI die letzten beiden Bits auf 1 setzen richtig?
-
Thread
4bits schnell hintereinander ausgeben
auch mal praktisch probieren. Das ganze soll eine Lichtsterung werden. Ich gebe am LPT Port ein 4bit Signal aus, mit dem ich 16 lampen ein und auschalten will. Wenns dann Funktioniert würde ich das ganze später gerne erweitern mit ner 7Segment anzeige oder LCD ;-) je nachdem wie ich das blicke *g*.
@niels: setzen, Sechs ;-). Asynchrone Übertragung hat im Gegensatz zu MFM/Manchester/... keinen Takt im Signal. Bei 0xFF kommt erst mal H (Ruhe), dann 1 Takt lang L als Startbit, dann 9 Takte lang H für Daten
-
Thread
Kleines aber feines Projekt
TEMP, 1 ;Warten auf Ueberlauf TC0 rjmp Warten ldi TEMP, 0b00000010 ;Ueberlauf-Bit TC0 ruecksetzen out TIFR, TEMP ret [/avrasm] halten die Programmbearbeitung an. Du willst eine Wartezeit, dann leite sie aus den Zeitflags ab. Setz eine Variable auf den Wert x und zähl bei
ja nur Bit 4-7 auf Ausgang setzen, aber du hast auch gleichzeitig Bit 0-3 als Eingang definiert. Da ist es richtiger, erst einmal das DDR register zu lesen und dann nur die Bits manipulieren, die du beeinflussen
-
Thread
Mikrocontroller lernen als E-Technik-Student: Assembler bzw 8 Bit noch sinnvoll?
auch 24-Bit µC.
Funktionen richtig anzuschließen. Z.B. P1_20 hat als GPIO FUNC0 und Bitnummer 15. P2_0 hat auch Bit 0 aber als GPIO muß man FUNC4 setzen. P1_19 wiederum kann kein GPIO sein. Da ist also keinerlei Regel dahinter, jeden einzelnen Pin muß man nachschauen.
-
Thread
Video Streaming STM32 -> Z80
Hi Sean Goff, der Z80 hat ASM Befehle zum abfragen von einem einzelnen Bit (ob gesetzt oder nicht) und zum setzen von einem einzelnen Bit abfrage : BIT b,r (8 Takte) setzen : SET b,r (12 Takte) dazwischen brauchst du noch einen Jump (if Zero) der braucht 10 Takte
Uwe B. schrieb im Beitrag #3562085: > der Z80 hat ASM Befehle zum abfragen von einem einzelnen Bit > (ob gesetzt oder nicht) und zum setzen von einem einzelnen Bit Danke, jetzt wo dus sagst sehe ich es auch. Dann werde ich es wohl mit 8 BIT abfragen mit Jump machen. Uwe B. schrieb im Beitrag
-
Thread
SDR-Dekoder für TFA KlimaLogg Pro/IT+ Temperatursensoren
Text-Datei. Jede Ausgabe ist ein Empfangenes Bit. Gruß Maik
Allocating 15 zero-copy buffers 2021-12-07T12:21:44.266035873Z Registering demod for TFA_2 sensors, 17240 bit/s 2021-12-07T12:21:44.266082964Z type 0x1: Samples per bit: 22.3 2021-12-07T12:21:44.266091305Z Registering demod for TFA_3 sensors, 9600 bit/s 2021-12-07T12:21:44.266097710Z type 0x2: Samples per
-
Thread
Probleme mit "rjmp 0000" und "CLI" (ASSEMBLER) ATmega8
einfach den Codeanfang zu zeigen führt zwangsläuftig zu Problemen. Ich empfehle den Watchdog-Reset. (Bit3 im WDTCR setzen und einfach in eine Endlosschleife treten).
@Niels >Ich empfehle den Watchdog-Reset. (Bit3 im WDTCR setzen und einfach in >eine Endlosschleife treten). Gute Idee, aber dann dann bleibt das (Bit3-WDTCR im MCUCSR gesetzt) und das MCUCSR-Register soll bei Programmstart nicht glöscht
-
Thread
USB des STM32 F103C8T6 nutzen
getaktet wird. Im Reset-Zustand ist der Teiler für den USB-Takt schon auf 1,5 eingestellt (USBPRE Bit im RCC_CFGR == 0), d.h. mit 72MHz Systemtakt läuft der USB automatisch mit 48MHz. Ansonsten muss man das System ebenfalls mit 48MHz takten und das USBPRE Bit setzen, dann ist USB-Takt gleich Systemtakt
Wie installiert man die Nuvoton *.inf Datei unter Windows 7 32bit?
-
Thread
Kombinatorik für Fortgeschrittene?
erst mal eine zufällige Zahl zwischen 1 und > 64 generieren und dann entsprechend viele zufällige Bits auf 1 setzen. > Danach kannst Du schauen, ob die beiden ersten Bits gesetzt sind. inwieweit würde sich das vom pseudocode unterscheiden?
for (int i = 0; i < anzahl_gezogen; i++) { position = rand_zwischen(0, 63); while (bit_ist_gesetzt(bitfeld, position)) { // Bit ist schon gesetzt, nimm nächste Position position = (position + 1) % 64; } setze_bit(bitfeld, position); } if (bit_ist_gesetzt
-
Thread
PIC 18 in und aus Sleep modus mit UART Interrupt
einer ISR. In Hauptprogramm Puffer für String reservieren Zeiger auf das erste Zeichen setzen In der ISR Empfagenes Zeichen in den Puffer schreiben Puffer voll? -> Flag setzen Ende-Kenung gekommen? -> Flag setzen Zeiger auf nächsten Pufferplatz setzen ISR verlassen
zum Auto Wake Up des PICs zu halten (S.276). [c] void main(void) { while(1) { ... BAUDCON1bits.WUE = 1; // Setze dieses Bit bevor PIC in SLEEP Modus to enter Auto Wake Up putcUSART(0x00); // Sende Break Sequenz, dieses Byte wird verworfen Sleep(); // versetzte
-
Thread
LCD Timings - SVGA - LPC2478
Das funktioniert nur, wenn ich Bit 12 setze. Genau wie meine Funktion. Noch Ideen, ansonsten warte ich auf das vorgesehene RAM.
Wenn ich Bit 12 nicht setze, dann habe ich nur Speicherfehler mit deiner Zeile.
-
Thread
Anfängerfrage: Temperaturgesteuerter Heizer
Übertragungsfrequenzen ansetzt. uint8_t w1_reset( void ); // löst am DS1820 einen Reset aus uint8_t w1_bit_io( uint8_t b ); // schreibt ein Bit in den IC, gleichzeitig wird ein Bit // vom IC empfangen uint8_t w1_byte_wr( uint8_t b ); // benutzt w1_bit_io um nacheinander 8 Bit zum IC zu schicken
if(t >= 10) { p |= (1<<4); t -= 10; } //Pin4 für 10°C setzen if(t >= 8) { p |= (1<<3); t -= 8; } //Pin3 für 8°C setzen if(t >= 4) { p |= (1<<2); t -= 4; } //Pin2 für 4°C setzen if(t >= 2) { p |= (1<<1); t -= 2; } //Pin1 für 2°C setzen
-
Thread
Xmega Soundcheck
> würde toggeln. Z.B. 32000 (16Bit) resampled nach 12Bit ergibt: 4062.5. > Ausgegeben mit 12 Bit: 4062 4063 4062 4063 ... (bis 16) Ups. Richtig heißen muss es: Z.B. 33000 (16Bit) resampled nach 12Bit ergibt: 2062.5. Ausgegeben mit 12 Bit: 2062 2063 2062 2063 ... (bis 16) Noch ein Bsp.: 65110(16Bit) -> 12Bit: 4069.375 -> Lsb's: 0110 -> 6. D.h. Korrekturwert 6 muss auf 16 12 Bit Werte aufgeteilt (offsetted) werden.
-
Thread
AVR-C Analog Read
gemacht hast, und in Theorie und Praxis (vor allen Dingen Praxis) gelernt hast, wie man einzelne Bits auf 1 bzw. auf 0 setzt, bzw. dass man 0 Bits nicht explizit setzen muss, wenn man sowieso dem Register als ganzes etwas zuweist.
Martin Fischer schrieb im Beitrag #3432066: > Ja, mit auf 0 setzen meine ich sie gar nicht setzen. Ein Bit ist entweder 1 oder 0. Fangen wir jetzt bei Adam und Eva an? > Wenn ich sie von 1 > zu 0 setzen mag, muss ich sie ja nur löschen, oder? Ja > Und