-
Thread
TSIC und ATMega
reading 10 bits in total if ((PIND & (1<<PIND3)) && zac_current_bit > 1 && zac_current_bit < 9) { zac_low_byte |= (1 << (zac_current_bit - 2)); } // decrement current bit every trigger if
} // decrement current bit every trigger if (zac_current_bit > 0) { zac_current_bit--; } // all bits read => back to the beginning else { zac_current_bit = 8; state = ZAC_READING_START_BIT_LOW
-
Thread
Funkmodul mit 1km Recihweite Gesperrt
Also ich hab jetzt mal überlegt: die Daten zum Empfänger betragen für 20ms: 4*10Bit ADC Wert 1*8Bit Schalter sind 48Bit, sind 2400Bit/s (=50*48Bit). Ist die Datenrate auch entfernungsabhängig? Ich brauch nämlich mindestens diese 2400bit/s sonst wird es wohl zu abrupten Servoänderungen
, also werden die Daten z.B. nur noch alle 30ms übertragen: 33*48Bit = 1584Bit/s Ich befürchte nur, dass das Modell dadurch eventeull zu träge auf Bedienereingaben reagieren könnte. 3. Eine Kombination aus den beiden Sachen: 33*32Bit + 4*8Bit = 1088Bit
-
Thread
Atmega16 100kHz Encodersignal
wird an deinem Programm liegen. Vermutlich. Ich hab das Programm jetzt komplett reduziert und setze stur den Port. 2,6 MHz... Irre, wieviel so wenig Befehle und ein paar optimierungsprobleme (16- statt 8bit Zugriff etc.) den Prozessor extrem verlangsamen o.O Selbst wenn ich alles bis ultimo
interessiert, so würde dein Problem in einer richtigen Sprache gelöst werden: [avrasm] .EQU ENC_A_BIT = 0 ;nur als Beispiele .EQU ENC_B_BIT = 1 .EQU ENC_PORT = PORTC .EQU ENC_A_MSK = 1<<ENC_A_BIT .EQU ENC_B_MSK = 1<<ENC_B_BIT .DEF ENC_STAT = R16 ;optional
-
Thread
Ansteuerung von ca. 1200 LED´s
setzen. Wenn nicht dann kannst du die Schieberei des einzelnen Bits genau verfolgen, wie es von Fach zu Fach hopst und an deinem Wunschfach stoppt. Gewisse Lichtspielereien wären dann z.B.: Du veränderst
musst Du erst einmal 30 mal 0 raustakten, dann einmal eine 1, dann wieder 119 mal eine 0. Die Bits lassen sich beim MBI5026 (oder HC4094) nicht kollektiv setzen oder löschen, nur immer hübsch der Reihe nach durchschieben. Mit der LE-Leitung kannst Du dafür sorgen, dass die Daten erst dann an den
-
Thread
MENÜ-STEUERUNG
haben, muss der Zählumfang begrenzt werden. Das geht am einfachsten, indem man nur die unteren drei Bit benutzt, die haben den Wertebereich 0 bis 7. Mit einer AND-Verknüpfung kann man diese Bits maskieren. Was soll nun passieren, wenn eine der Dimm-Tasten gedrückt wird? Klar, es soll eine PWM im Tastgrad
Wert in eedr - hebe den Schreibschutz auf (eemwe) - setze innerhalb 4 Takte Schreibimpuls (eewe) Falls ein Programm mit Interrupts arbeitet, könnte zwischen Schreibschutz aufheben und Schreibimpuls setzen ein Interrupt zuschlagen und damit das Setzen des
-
Thread
PC8583 max Jahr oder doch was anderes?
RTC nehmen (2) pluss die bits die man intern hat (3?). Daraus baut man halt den 5 bit wert. Wieso 5 bits? Wieso dann nicht 8? Oder nur 4? Ich meine bei einer 8 bit controller, wer würde dann aus einer byte dann nur 5 bits für
Ergebnis im RAM (0x89..0x8C) MSB Jahr (6 Bits) Monat (4 Bits) Tag (5 Bits) Stunde (5 Bits) Minute (6 Bits) Sekunde (6 Bits) LSB [/code] Mit dieser Zeit (RAM 0x89..0x8C) wird an vielen Stellen im Code
-
Thread
AD Wandler liest falsch PIC
anschaue, denke ich, dass in der adc-ISR, nachdem das ADIF abgefragt wird, nicht sofort das ADCON0bits.GO gesetzt werden darf, da es ja sonst keinerlei aquisition-time gibt. Vor dem Setzen des ADCON0bits.GO könnte man ja vorher noch die delay-routine aufrufen, c.a. 5mikrosek. dürften genügen.
anschaue, denke ich, dass in der adc-ISR, > nachdem das ADIF abgefragt wird, nicht sofort das ADCON0bits.GO gesetzt > werden darf, da es ja sonst keinerlei aquisition-time gibt. > Vor dem Setzen des ADCON0bits.GO könnte man ja vorher noch die > delay-routine aufrufen, c.a. 5mikrosek. dürften genügen
-
Thread
Timer 2 Problem ATmega640
starten des Programms hängt es sich jedoch einfach auf. [c] void Interrupt_Timer2_Konfig(void) { bit_setzen(TCCR2B,CS22); bit_setzen(TCCR2B,CS21); bit_loeschen(TCCR2B,CS20); bit_setzen(TCCR2A,WGM21); bit_loeschen(TCCR2A,WGM20); bit_loeschen(TCCR2B,WGM22); bit_setzen(TIMSK2,OCIE2A); OCR2A
Ja eigentlich schon, sobald ich das OCIE2A bit nicht setze funktioniert alles einwandfrei.
-
Thread
Timer-Interrupt und Delay
setzen 2. Aufruf ;nach 8,33µs Bit1 am Port setzen 3. Aufruf ;nach 16,67µs Bit0 am Port rücksetzen Bit1 am Port rücksetzen 4. Aufruf ;nach 25µs Bit0 am Port setzen 5. Aufruf ;nach 33.33µs Bit1 am Port setzen 6. Aufruf ;nach 41,67µs Bit0 am Port rücksetzen Bit1 am Port rücksetzen ... Ich hoffe es ersichtlich, das sich hier 40kHz ergeben. Nun aber zu meinem Problem. Zwischen jedem 3er Block muss
-
Thread
Lokdecoder AT90S2313
Dank Aber wie stelle ich das dann an, wie kann ich die Bits empfangen und wie kann ich sie dann zu Bytes zusammen setzen. Oder gibt es vieleicht ein Beispiel dazu/ hier im Forum? Ich habe halt bis jetzt noch nicht mit anderen Pins/Eingänge des AT90S2313 Bits
ist. Ist es bekannt, mußt du den µC damit synchronisieren. D.h., du musst das Einlesen der Daten (Bits) mit diesem Clock-Signal abstimmen. Jetzt brauchst du nur einen bestimmten Startpunkt suchen/setzen. Ab diesem Zeitpunkt zählst du die eingehenden Takte und schiebst die anliegenden Datenbits in ein
-
Thread
Interrupts ausscalten
, wenn das I-Bit gesetzt ist. Wenn in deiner gerade laufenden Interrupt-Routine also da I-Bit gesetzt ist, wird sie durch den neuen Interrupt auch unterbrochen. Allerdigs löscht der Prozessor das I-Bit beim Eintritt
erst durch/nach "reti" (verlassen der ISR) wieder frei. Somit muß man zu Beginn der ISR das RXCIE-bit löschen und am Ende wieder setzen, damit am Ende der ISR kein USART-Interrupt von einer schon abgearbeiteten Übertragung auftreten.
-
Thread
BCD-Decoder und 8Bit
Ein 8 Bit BINAER Wert benötigt in BCD Darstellung 12 Bit, Wikipedisiere es selbst!
Heinz V. schrieb im Beitrag #4906025: > Ein 8 Bit BINAER Wert benötigt in BCD Darstellung 12 Bit, Wikipedisiere > es selbst! Ein Wert von 0..255 braucht in BCD 10 bit, und dafür muss man nun wirklich nicht Wikipedia bemühen, Denken reicht. Ist
-
Thread
Interrupt 8Bit AVR
konfiguriert werden. Und dann solltest du cli() und sei() aus dem Interrupt entfernen, da das I-Bit automatisch gelöscht werden sollte. Siehe auch Datenblatt.
In der Main nach sei solltest du aber eine while(1); machen. DDRB solltest du pin3 auf output setzen oder willst du nur den pullup aktivieren.?
-
Thread
Anfängerfreundlicher 32-Bit Controller
Halli Hallo, ich habe bisher nur mit 8-Bit Controllern zu tun gehabt, suche jetzt aber für ein Projekt an der Hochschule einen möglichst Einsteigerfreundlichen 32-Bit Mikrocontroller + Eval-Board. Dieser sollte zunächst mal einen CAN Controller
morgen. Mich betrifft das nicht mehr, ich werde kein Entscheider in einem Grosskonzern mehr. Aber ich setze auch keinerlei Infineon-Bauteile in meinen Designs mehr ein. 2 mal gut auf die Fresse geflogen das reicht.
-
Thread
AD-Wandler Atmega 32
aber das Ergebnis der Wandlung entsprechend weiterverarbeiten. Zunächst mal solltest Du das ADLAR-Bit im ADMUX-Register setzen. Dann wird das Ergebnis schon mal linksbündig ausgegeben und Du musst nur noch das 8-Bit-Register ADCH auslesen (Wertebereich 0...255). Und den Wert teilst Du noch durch 32.
dich mal im Dateblatt ein, wie das ADC-Ergebnis 'left-adjusted' eingestellt wird, dann bist du bei 8 bit (die unteren 2 bit kannst du ignorieren, indem du dann nur ADCH ausliest). Diese 8 bit nun 5 bit nach rechts schieben und du bist bei 3 bit Auflösung (0..7). In Assembler und in C die schnellste Variante
-
Thread
Messen mit Atmega16
Werte it unbestritten aber du rechnest die 0 mit ein und das ist nicht korrekt auch wenn es bei 10 Bit nicht auffällt. Rechne mal mit 2 oder 3 Bit Auflösungdann merkst du den Rechenfehler '-)
Ja die Methode ist einfach indem man die Aref extra moduliert und den Schaltpunkt der Bits veschiebt. Damit kann man die Auflösung um 1-2 Bits heraufsetzen. Hab ich mal vor 15 jahren für einen 6 Bit Wandler gemacht da mit nen 8 Bit noch zu teuer war. Ging einigermaßen. Is aber in
-
Thread
Suche: 16Bit digitaler Widerstand
Hallo, ich kenne keinen. Digitale Potis kenne ich bis maximal 10 Bit Auflösung. Der Großteil hat nur 7 Bit. Da wirst Du schon einen 16-Bit D/A-Wandler verwenden müssen. Wie sind denn so die Anforderungen an Genauigkeit und Linearität?
das mit dem Widerstand wollte ich mit einem 4066 (für 4 Bit) lösen. Weiß nur nicht, ob es zu aufwendig unz zu ungenau ist. Außerdem müßte ich jeden Widerstand als Poti nehmen und genau einstellen. Das ganze 4x hintereinander und mit 16Bit ansteuern...
-
Thread
PIC 18F2550 Interrupts in C18
LATA0 > gemacht. Habe RA0 nur jetzt im letzten versuch probiert. Ich meinte damit: Konntest Du Bit 0 von Port A setzen, so dass Du am Pin des Controllers ein logisch 1 Signal messen konntest? Also hat das Setzen eines Pins funktioniert? Dies im Hauptprogramm, nicht in der ISR. > Öhm ja, aber
} } void main(void){ TRISA = 0x00; LATA = 0x00; TRISB = 0xFF; T0CONbits.T08BIT = 0; T0CONbits.T0CS = 0; T0CONbits.PSA = 0; T0CONbits.TMR0ON = 1; INTCONbits.TMR0IE = 1; INTCON2bits.RBIP = 1; INTCON2bits.INTEDG0 = 1; INTCONbits.GIE = 1; while(1
-
Thread
Security/Lock Bits Zurücksetzen?
Hast Du das mit dem Button "Clear All" gemacht? Ist davon auch das Bit "SPIEN" betroffen? MfG Andi
Hallo, mit HV-Programmierung kannst du die Fuse-Bits immer setzen oder wieder zurücksetzen egal wie sie gesetzt sind. Auch wenn du den Zugriff per SPI durch Löschen des SPIEN-Bits gesperrt hast. HV-Programmierung kann z.B das STK-500. MfG
-
Thread
Zahlen getrennt ausgeben
binär 10011011 und soll auf Portd 1 ausgegeben werden. a = schleifenzähler a= 0 1001101"1" unterste Bit 1 = setze Portd 1 auf 1 kleine Pause nach bedarf a = 1 einmal nach rechts schieben 0100110"1" unterste Bit 1 = setze Portd 1 auf 1 kleine Pause nach bedarf a = 2 einmal nach rechts schieben 0010011"0" unterste Bit 0 = setze Portd 1 auf 0 kleine Pause nach bedarf a = 3 einmal nach rechts schieben 0001001"1" unterste Bit 1 = setze Portd 1 auf 1 kleine Pause nach bedarf a = 4 Im Programm macht man das
-
Thread
Frequenzmessung mit MSP430 im LPM3
Pin 1.4 funktioniert aber der Vergleich mit CCR1 und CCR2 wohl noch nicht. Muss ich denn das CCIE Bit setzen um im TAIV Register die Flag zu sehen? Wenn ich das mache scheint der Pin-Interrupt nicht mehr zu funktionieren?! Kann man man den Timer einfach mit [c] TA1R = 0 [/c] "reseten" oder muss man
// ACLK + Continuous Mode TA1CCR1 = minPeriod; // Compare-Wert setzen TA1CCR2 = maxPeriod; // Compare-Wert setzen _BIS_SR(LPM3_bits + GIE); // LPM3 und globale Interrupts aktivieren } #pragma vector=PORT1_VECTOR __interrupt
-
Thread
Einstieg MSP430
solltest, einfach nach deinem MSP-Typ suchen. Es schaut dann so aus in der include libary: #define BIT0 0x01 Dann kannst immer, wenn Du das erste Bit z.B. in einem Register setzen willst BIT0 verwenden, ist deutlich einfacher zu verstehen als 0x01. Und bei dem Beispiel: #define BUTTON
[c] #define RED BIT0 #define GREEN BIT6 #define LED_DIR P1DIR #define LED_OUT P1OUT // LED Pins auf Ausgang setzen LED_DIR |= RED_LED | GREEN_LED; [/c] Um die LEDs auf Ausgang zu setzen muss der Wert 1 gesetzt
-
Thread
Interrupt-Routine mit C und Timer1
Ausgänge TRISB=0; //PORTB - Ausgang PORTB=0; //PORTB auf Null setzen INTCON=0b10000000; // PIE1=1; //bei Auslösen PIR1(bit0)=0 setzen while (1) { } }[/c]
TRISB=0; //PORTB - Ausgang (Dioden) PORTB=0; //PORTB auf Null setzen PORTA=0; //PORTA ausschalten INTCON= 0b000000001; //Interrupts zulassen PIE1= 0b000000001; //bei Auslösen PIR1[bit0(TMR1IF)]=0 setzen while (1
-
Thread
BASIC-Computer mit Mega32
@Joerg: Das wäre SUPER. Bit und Byteweise auszugeben und einzulesen. Also dass ma z.B. auch: Out 64,1 Eingeben könnte damit ich auch z.B. den 2. und 6. gleichzeitig auf high oder low setzen kann.
Es wäre dann halt nur der Offset von 256, also z.B. OUT M+256,0 um die in der Maske M bestimmten Bits auf Null zu setzen. Es sind ja nicht nur Zahlen, sondern fast beliebige Ausdrücke für alle Argumente möglich. Gruß Jörg
-
Thread
Problme mil LCD Routine
Hallo Versuch mal die oberen 4-Bit zu senden, während das Enable-Bit gesetzt ist. Zwischen denen schaltest du das Enable-Bit kurz aus, dann wieder ein. Dann sendest du die 4-Bit, dann schaltest du das Enable-Bit aus und machst dein delay
erkennt er dann die negative Flanke besser. Dies würde dann aber auch nicht erklären, warum nur 1 Bit falsch ist. Aber versuchen kannst du's ja. Habe sonst auch keine andere Idee. An deinem Beispiel erklärt: chr=0x61; LCD_RS=1; *hier Enable auf 1 setzen* LCD_D7=(chr>>7)&0x01;
-
Thread
Wie schnell ist euer uC
Nur zum Bleistift: ein AVR 8-bit benötigt fürn setz, lösch Befehl eines Portpins 2 Takte. ein AVR 8-bit XMEGA benötigt 1 Takt ein MSP430F149 benötigt meineswissens 6 Takte (jedoch nicht ganz sicher meinerseits) und deswegen
Gast wrote: > Nur zum Bleistift: > > ein AVR 8-bit benötigt fürn setz, lösch Befehl eines Portpins > 2 Takte. Vosichtig damit, die neuen AVRs können einen Port auch mit nur einem Befehl "toggeln", nämlich indem man ins PIN-Register schreibt.
-
Thread
Suche Programmgerüst: USB-Kommunikation und Daten Ein/Ausgabe Windows
beendet wird. Wenn man sich das in Assembler gespart hat, dann schmiert die Kiste halt ab. Edit: 32 Bit Windows interessiert mich nicht mehr, ich setze ein 64 Bit Windows voraus. Wir leben nicht mehr im Mittelalter und fast niemand unterstützt noch 32 Bit Windows.
Ben B. schrieb im Beitrag #7414308: > Edit: 32 Bit Windows interessiert mich nicht mehr, ich setze ein 64 Bit > Windows voraus. Wir leben nicht mehr im Mittelalter und fast niemand > unterstützt noch 32 Bit Windows. Ich denke, das wird schon
-
Thread
ENC28J60 - sendet nichts
Was heißt richtigen SPI-Modus? Aufgrund der Verdrahtung nutze ich das Hardwaremodul nicht sondern setze Daten und Takt manuell (in Software halt). Ich lege mein Bit an und lese das vom Chip aus, danach takte ich einmal. Wenn die SPI-Funktion nicht funkionieren würde würde ja jede Kommunikation mit dem
heißt richtigen SPI-Modus? Aufgrund der Verdrahtung nutze ich das > Hardwaremodul nicht sondern setze Daten und Takt manuell (in Software > halt). > Ich lege mein Bit an und lese das vom Chip aus, danach takte ich einmal. Wenn du das genau so machst, dann ist das definitiv falsch! Das Bit vom
-
Thread
Dauerhaft FakeNews in allen AVR Series 0/1/2 Datenblättern
dagegen diesbezüglich das Forums-eigene Wiki, in dem diese und weitere Änderungen (automatische Setzen des IE-bit im SREG) innerhalb der AVR genannten Familie nicht vermerkt sind. https://www.mikrocontroller.net/articles/AVR-Tutorial:_Interrupts https://snowgoons.ro/posts/2022-02-21-atmega-avr-interrupt-handling
0). Es 'gibt' eben dieses IR-bit nicht in allen Betriebsweisen dieses Peripherals, in vielen Modi ist es durch das RXCIF-bit an gleicher Position 'ersetzt'. Nur verhält sich eben das RXCIF-bit anders als das IF-bit. Da verwundert
-
Thread
UART Konfigurieren
< UCSZ1) | (1 << UCSZ2) ist laut Datenblatt Reserved. Für einen Character Size von vermutlich 8 Bit müßtest du doch eigentlich (1 << UCSZ1) | (1 << UCSZ0) setzen ?
> Für einen Character Size von vermutlich 8 Bit müßtest du doch eigentlich > (1 << UCSZ1) | (1 << UCSZ0) setzen ? Auch wahr. Aber am besten, das UCSRC gar nicht setzen, der Initial Value passt doch schon. > Und ausserdem gibt es kein UCSZ2
-
Thread
WinAVR vs. Atmels Toolchain
WinAVR! Jeder, der mit avr-gcc arbeitet, sollte diese beiden Punkte beherzigen. Zum Glück werden 64-Bit Typen recht selten verwendet, und eine Option wie -fno-split-wide-types zu setzen ist kein Aufwand. > Zumal der Link den du unten angabst in einem Fall schon ein Jahr alt > ist, und im zweiten Fall
Jeder, der mit avr-gcc arbeitet, sollte > diese beiden Punkte beherzigen. > > Zum Glück werden 64-Bit Typen recht selten verwendet, und eine Option > wie -fno-split-wide-types zu setzen ist kein Aufwand. > AVR32-Studio bringt nach der Atmel-Website auch AVR-Tools mit. Wobei ich > nicht nachvollziehen
-
Thread
Schneller 8bit Treiber gesucht
Dirk E. schrieb im Beitrag #7825462: > 8bit io ic mit open collector Oder Tri-State Ausgängen.
wenn ich zuwenig Pins habe, und die Pins nichts koennen muessen. Di kann man gut kaskadieren, zB 24bit Outputs
-
Thread
Gratis 8/16-Bit Softcore Prozessor
Wohl weil ein Blockram 18kBit gross ist und eine Instruktion üblicherweise 18 oder 16 Bit breit. Das ergibt dann 1k Instruktionen. Bei Proteus kannst du bis zu 64k Instruktionen ausführen. Hier gibt es diese Beschränkung also nicht
Steuerbert schrieb im Beitrag #1805771: > Bei den größeren 8Bit PICs gabs da mal 1-2 Bank-Bits Jaja, das haben schon viele angefangen. Trotzdem ist dieses Bank-Switching einfach nur hingebastelter Murks. > Vermutlich könnte man sowas sogar nachträglich recht
-
Thread
Vorstellung und erstes Projekt
man kann den µC "schlafen legen" und mit Interrupt aufwecken. Auch kann man durch "Flagregister" Bits setzen, folgende Programmabschnitte durchlaufen lassen die Flagregister-Bits am Ende wieder löschen, so dass die Main-Routine da wieder stoppt, bis der andere Interrupt kommt, auf einen anderen Programmabschnitt
sich nun 2 Probleme: 1. Darstellung des Bit: Entweder als schiere Bitnummer oder als (1<<Bitnummer). 2. Zuordnung von Port/Variable und Bit Beides muß bei allen Verwendungen des Bits im Programm richtig gemacht werden und bietet deshalb eine
-
Thread
8Bit Grafikkarte für µC
Lassen sich die beiden fehlenden Bits aus dem 8bit Speicher einfach so ausgeben, oder werden die für was anderes verwendet ? Ich habe nämlich noch einige RAMDACs aus ISA Grafikkarten rumliegen, und die haben eine Farbtabelle eingebaut
77Hz bzw. 93Hz sein. Desweiteren ist mir aufgefallen das deine Farbpalette aufgeteilt auf die Bits im Byte vertauscht sind. Müssten die nicht MSB->LSB == R->G->B == 2 Bits frei, Hellrot, Dunkelrot, Hellgrün, Dunkelgrün, Hellblau, Dunkelblau sein ? Bei einem Timing von 125ns pro ~WR muß man ja
-
Thread
ausgesperrt aus Atmega1284p
Starte Atmel/Microchip-Studio, setze den Programmer auf den langsamsten SPI-Takt (2kHz) und lese die Signatur aus. Wenn die stimmt, kannst Du die Fuses wieder richtig setzen.
Peter D. schrieb im Beitrag #6978191: > Starte Atmel/Microchip-Studio, setze den Programmer auf den langsamsten > SPI-Takt (2kHz) und lese die Signatur aus. Wenn die stimmt, kannst Du > die Fuses wieder richtig setzen. Hi, auch HV-Programmierung kann als ultima ratio
-
Thread
Attiny2313 + LM7001 + Bascom - Wer kann helfen?
LM7001 > ankommen könnten. Das kannst du an deiner Schaltung recht einfach mit den TB und B0..B2 Bits selber testen. Ein gesetztes TB sollte ja ein 8 Hz Timebase Signal am Ausgang /BO1 erzeugen, die Bn Bits setzen die Bandwahl Ausgänge(siehe die Tabelle). Mit diesem Wissen kannst du schon mal das
umgeht, weiss ich aber nicht. In meinem C Programm setze ich den gesamten String vorher zusammen und bit-bange ihn dann auf dem LM7001, damit ich vorher mir die Werte für Raster, TB, B-Bits und S zusammensetzen kann. Das sieht dann so aus: [pre] Data
-
Thread
Interrupt an PIC16F886
call write_ports > >aus dem Interrupt raus nimmst? Vergiss das. Wieso so umständlich? Setz PB7 doch direkt.
Hilfe. Das write_ports benutze ich, weil ich immer Probleme mit meinen Ports hatte. Wenn ich die Bits des Ports einzeln setze, werden die anderen immer genullt. Ich habe nun aber den angehängten Code ausprobiert. Da wird in dem Interrupt kein write_ports mehr aufgerufen und es wird stattdessen gewartet
-
Thread
STM32G4 PB8 (Boot0) als GPIO nutzen
Reference Manual: [code] The BOOT0 value may come from the PB8-BOOT0 pin or from an nBOOT0 option bit depending on the value of a user nBOOT_SEL option bit to free the GPIO pad if needed. [/code] Will heissen du musst das <nBOOT_SEL option bit> richtig setzen.
dem Reference Manual:The BOOT0 value may come from the PB8-BOOT0 pin > or from an nBOOT0 > option bit depending on the value of a user nBOOT_SEL option bit > to free the GPIO pad if needed. > > Will heissen du musst das <nBOOT_SEL option bit> richtig setzen. Danke, nun gem. der Doku die ich gesehen
-
Thread
AVR Studio und UART interrupt; wie?
das UDR leer ist - also bereit neue Daten zu empfangen, die abgeschickt werden sollen, wird dieses Bit automatisch gesetzt. Die Abfrage stammt aus dem Tutorial hier auf der Seite und bewirkt, dass solange gewartet wird bis das UDRE bit gesetzt ist, also bis man neue Daten losschicken kann, indem man
Wenn Du das UDR schreibst, werden die 8 Bits aus UDR der Reihe nach mit der eingestellten Baudrate (9600 Baud, also 9600 Bit/s) ausgegeben. Da der µC pro Sekunde 16000000 Taktzyklen hinlegt, macht er während der Übertragung (16000000 / 9600) *
-
Thread
Was kann man mit 16Byte an RAM machen?
normaler geistiger Beweglichkeit schnell drauf, viel entscheidender ist das Wissen darüber, welche Bits man in welchem Control-Register setzen muss, damit serielles Senden oder eine ADC-Messung so läuft wie sich das der Programmierer vorstellt - und das ist bei Assembler oder C genau dasselbe Problem.
funktioniert nur, wenn die Spannung am µC >= die vom I2C-Device ist. > in dem ich die entsprechenden > Bits im TRIS-Register setze. Wenn ich einen Pin low schalten möchte, > muss ich das gesamte TRIS-Register neu schreiben. Damit würde ich > automatisch auch den Zustand des 2. Pins überschreiben, d.h.
-
Thread
Display Ansteuerung - 16 x 4 DotMatrix LCD
|= (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
Vector Table Offset setzen: Nur multiple of 0x200 ?
Projekt (STMF103CB..) mit ST HAL Treibern via STM32CubeMX erstellt. Wenn ich den Vector Table Offset setzen möchte, finde ich dazu in der Datei system_stm32f1xx.c: #define VECT_TAB_OFFSET 0x4100 /*!< Vector Table base offset field. This value must be a multiple of 0x200
20xxx/21xxx/L1xxxx Cortex-M3 programming manual: 4.4.4 Vector table offset register (SCB_VTOR) Bits 8:0 Reserved, must be kept cleared
-
Thread
32Bit Variable in Assembler
genauso so wie du es mit einer 16bit varibale machst. addi R16, 1 addwi R17, 0 addwi R18, 0 addwi R19, 0 verlgeich muss dann extra gemacht werden.
klein, nun etwas erweitert werden soll, wollte ich es auch gleich weiter in Assembler machen. Evtl. Setze ich es aber auch ne in C auf mal gucken, trotzdem danke.
-
Thread
8-Bit Display Ansteuerung
Bei 2 Zeilern muss man fuer die 2. Zeile ueblicherweise den Cursor auf hex 40 setzen.
Aus Spaß kannst Du abschließend auch den 4-Bit Modus probieren. Dabei wirst Du sehen, daß die Ausgabe nicht langsamer ist aber 4 Portleitungen gespart werden. Die Wartezeit für eine Zeichen-/Befehlsausgabe ist erst nach erfolgter Ausgabe des 8-Bit
-
Thread
kurze frage zur Init.
Beitrag #3226985: > Der AVR-GCC ist schon dahingehend nicht konform, dass sein > "double" nur 32 bits groß ist und damit den Minimalforderungen > des Standards an ein double nicht genügt Noch ne abschweifende Frage dazu: Im GCC double auf 64 Bits zu setzen und die entsprechenden Multilibs zu erzeugen
Johann L. schrieb im Beitrag #3226989: > Noch ne abschweifende Frage dazu: Im GCC double auf 64 Bits zu setzen > und die entsprechenden Multilibs zu erzeugen ist ja keine große Aktion, > aber wer würde die limbm-Teil übernehmen mit sin, cos, tan, exp, log, > etc.? Genau das wäre die Frage.
-
Thread
Wie 16 Bit unsigned int in ASCII umwandeln?
Welche Möglichkeiten gibt es, eine 16 Bit unsigned int Variable in ASCII umzuwandeln? Schon mal Danke für alle Tipps.
Dumpf Backe schrieb im Beitrag #5200806: > Themaverfehlung. Setzen, sechs. Nomen est omen! ;-)
-
Thread
Zustandsvariablenblöcke als serielle Bits an Schieberegister ausgeben?
quasi eine Art Byte - zu - Variablen - Konverter....;-) Nein. Mach dir Routinen, wie du ein Bit in einer Struktur von X Bytes Setzen Löschen Abfragen Toggeln kannst. Also set, res, tst, tog jeweils mit einem int idx und welche Struktur (LEDs, Taster, ...) Und dann schreibe die Bytes
A. S. schrieb im Beitrag #6586363: > Mach dir Routinen, wie du ein Bit in einer Struktur von X Bytes > Setzen > Löschen > Abfragen > Toggeln kannst. > Also set, res, tst, tog Hui. Das ist mir leider noch unbekannt - Könntest Du mir dafür ein einfaches Beispiel
-
Thread
4 Kanal MSO gesucht (Fortsetzung von "Oszilloskop R&S RTB 2k All-in, Erfahrungen")
auch bei Verwendung der 2 digital-Kanäle verfügbar, beim Hameg HMO3524 ist z.b. pro verwendeter 8 Bit Probe ein Analog-Kanal nicht nutzbar. Digital-Probes: frei definierbare Busbreiten, bis Bits "alle sind". Level pro Bit definierbar, Anzeige der Bus-Signale wahlweise als einzelne Bits oder Dez
Maxim B. schrieb im Beitrag #6633653: > aber 14 bit finde ich besser als 8. Maxim B. schrieb im Beitrag #6633234: > 14Bit(!) Lies nochmal genauer: die 14 Bit sind nur für den Signalgenerator. Das Oszi hat nur 8 Bit. Ist genauso wie bei meinem
-
Thread
8051 Bit Befehl durch Byte Befehl ersetzen
löschen tust du so: ANL A, #11111001b //Bit 1 und 2 gelöscht und setzen so: ORL A, #00000110b //Bit 1 und 2 gesetzt Dabei bleiben alle anderen Bits im Akku unangetastet.
Bit setzen mir ORL x,1 Bit löschen mit ANL x,0