-
Thread
LCD Display 2x16 Zeichen
zweizeilig zulässt. Pull Down hätte Sinn gemacht. SET FUNCTION L L L L H DL N F X X 42ms DL: H 8 bits interface; L 4 bits interface N: H 2 line display; L 1 line display F:H 5 X 10 dots; L 5 X 7 dots schönen Abend noch, Uwe
mir mal im Datenblatt die "Standard Pattern" angesehen. So besteht offenbar ein "A" aus den "upper 4 bit" 0100 und den "lower 4 bit" 0001. Soweit verstanden. Entsteht das Zeichen jetzt durch senden der 2 x 4 Bits an den Controller des Displays? Wenn ja, dann haut da was in meiner Schaltung mit dem Senden
-
Thread
Betty als Modellbau-Oszi
-mthumb-interwork -msoft-float -Os -I./ -I./targets/betty-backend -DBETTY_V2 -I./driver/drawing/fb1bit -DDRIVER_DRAWING -I./driver/graphic/ssd1854 -DDRIVER_GRAPHIC -DDRIVER_GRAPHIC_BACKLIGHT -I./platform/lpc2220 -I./platform/lpc2220/lpc2220_lib -c -o driver/drawing/fb1bit/drawing.o driver/drawing/fb1bit/drawing.c driver/drawing/fb1bit/drawing.c:25:1: warning: initialization from incompatible pointer type driver/drawing/fb1bit/drawing.c:25:1: warning: initialization from incompatible pointer type driver/drawing/fb1bit/drawing.c:
-
Thread
Temperaturmessung mit dem LM75
welchem Register ein Lese- oder Schreibzugriff landet. In dem Rigister sind nur die beiden untersten Bits benutzt, um eben die vier anderen Register auszuwählen. Hier mal als Super-Crashkurs Pointer Register setzen START Adressbyte vom LM75 + R/W Bit =0 (Schreibzugriff) Pointerbyte STOP Jetzt
jeweils getrennt. Ja. > msb und lsb muss ich vorher angeben. Ja, die musst du aus dem 16 Bit Wert ableiten. Das ist mal eine Aufgabe für dich. >Wenn ich z.B. den Wert von 0x1b nehme, wie setze ich den in msb und lsb? >Da ich z.B. 0x1b nehme, kommt das in den unteren? Hier sind wir wieder
-
Thread
Geschwindigkeit Arduino > C
Die libraries sind nicht überall so viel langsamer. Das setzen einzelner Bits ist schon so etwas wie ein worst case Beispiel. Bei vielen einfachen Rechenfragen gibt es gar keinen Unteschied zu normalem C Code. Bei so etwas wie UART / I2C kann man es von Hand
Ein einzelnes Bit an einem Port zu setzen oder löschen, ohne die andern zu verändern, geht aber nicht per ldi+out. Ist daher zwar genauso schnell, aber falsch. Oliver
-
Thread
Kleines C-Prog geht nicht
glaube ich nicht. > Werde aber wohl nicht erfahren, warum Mann einen schlüssigen Befehl, um > ein Bit zusetzen (also mit Oder maskiert - mit oder ohne senkrechten > Strich) nicht eine ähnliche Syntax verwendet, um ein Bit zu löschen. Weil das nicht primär die "Befehle" sind, um ein Bit zu setzen
zum Setzen / Löschen einzelner Bits > anbietet. > Und da ist er doch in der C++-Welt sehr gut aufgehoben ;-) Damit könnte > man auch die Problematik des RMW lösen ... Dir steht es natürlich frei eine
-
Thread
Atmega328 SPI SPIF wird nicht gesetzt
> Entscheidend ist wirklich dass das SPE Bit als > Letztes gesetzt wird Das sieht hier anders aus: entscheidend ist der Zustand von SS beim Setzen von SPE; ich kann dieses durchaus als Erstes setzen, wenn nur SS zu diesem Zeitpunkt high ist
Veit D. schrieb im Beitrag #6367424: > Master funktioniert nur und gibt Daten raus wenn das > SPE Bit als Letztes gesetzt wird. Nein, das stimmt nicht. Man kann MSTR setzen, *nachdem* SPE gesetzt wurde. Ich würde trotzdem immer die Bits in einem Rutsch setzen. Bei manchen IO-Registern haben die
-
Thread
SPI ATMega328P Daten sende
always check that the MSTR bit is still set. If the MSTR bit has been cleared by a Slave Select, it must be set by the user to re-enable SPI Master mode." MfG
nun. vielen Dank für die Hilfe. Eine Frage hätte ich noch, der Slave benötigt SCK=1 wenn ich SS setzen will. Kann ich SCK manuell auf 1 setzen um SS auf High und Low zu ändern?
-
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
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
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
Arduino Display ohne fertige Funktion ansteuern
Indem du nur vier der 8 Bits verwendest.
Anleitung auf Seite 34 die richtige sein. Dann würde ich nun einfach so "abtippen". 1. Die jeweiligen Bits auf HIGH/LOW setzen 2. delay(15) 3. die jeweiligen Bits auf HIGH/LOW setzen 4. delay(4.1) ... Und denn die Init abgeschlossen ist, die Bits für das "Z" auf HIGH oder LOW setzen
-
Thread
DOGM128 an MSP430
P2OUT &= ~BIT5; //Alle Steuerleitungen auf 0 setzen P2SEL &= ~BIT6; //Steuerleitungen als I/O einstellen P2DIR |= BIT6; //Steuerleitungen als Ausgang einstellen P2OUT &= ~BIT6; //Alle Steuerleitungen auf 0 setzen P2OUT |= BIT6; //Chip Select auf 1 setzen (Ausgangszustand hergestellt) transmit(0x40); //Display start line 0 transmit(0xa1); //ADC reverse transmit(0xc0); //Normal COM0.
-
Thread
PWM an atmega8
TCCR1B= ICNC1 ICES1 - WGM13 WGM12 CS12 CS11 CS10 Mit der Zusammensetzung der 4 WGM Bits setze ich den Modus. Wie also kann ich zwei verschiedene machen? > > Oder die eine setzt du auf y und die andere auf 255 - y > > Aber es muss sichergestellt sein, dass y auch wirklich im
Vielleicht doch mal das Datenblatt etwas genauer studieren? Das verstehe ich! Den Modus 10 oder 11 setze ich aber durch die WGM Bits und nicht durch COM1A1 oder COM1B1. Gruß
-
Thread
Meteotime-Bits stören Auerswald DCF-Uhr
einfügen, die nach dem fehlenden Sekundenbit (nach der 59. Sekunde) dafür sorgt, dass die nächsten 14 Bits alle nur eine Länge von 100ms (logisch 0) haben. Die Lösung, die Bits 1-14 dauerhaft auf 0 zu setzen, könnte hier für einen wirksamen Workaround sorgen. Das Problem dürfte bei eigenen Leuten aufgetreten
einfügen, die nach dem fehlenden Sekundenbit (nach der 59. > Sekunde) dafür sorgt, dass die nächsten 14 Bits alle nur eine Länge von > 100ms (logisch 0) haben. Die Lösung, die Bits 1-14 dauerhaft auf 0 zu > setzen, könnte hier für einen wirksamen Workaround sorgen Problemlos mit Standardchips aufbaubar
-
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
Hat schon jemand den LPC810 getestet?
Sommer schrieb im Beitrag #3212899: > Warum eigentlich? Ausserdem sind bei solchen Zwergprogrammen Bit-I/O und I/O-Registerzugriff signifikant, und /da/ ist der Unterschied markant. Portbit setzen: AVR 2 Bytes, CM0 12-14.
A. K. schrieb im Beitrag #3212910: > Ausserdem sind bei solchen Zwergprogrammen Bit-I/O und > I/O-Registerzugriff signifikant, und da ist der Unterschied markant. > Portbit setzen: AVR 2 Bytes, CM0 12-14. Das stimmt sogar... Bei sukzessiven Zugriffen auf das selbe Register wirds
-
Thread
Einzelnes Bit im nRF24L01+ Register setzen
Denke einzelne Bits zu setzen ist nichtmal im nrf24 vorgesehen. Kannst dir ja auch Bytes praktisch vorbelegen wie Byte LOWDBMWITH250kbs..
Einzelne Bits zu setzen bringt einen so minimalen Zeitgewinn und kostet so massiv Hardware im Modul, dass das eigtl niemand ohne triftigen Grund macht.
-
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
SCK durchgehend erzeugen
Stellt die Geschwindigkeit ein //SPI.setBitOrder(LSBFIRST); // Setzt die Bit-Reihenfolge Most-Significant-Bit, scheint Standart zu sein!!! Serial.begin(9600); } void loop() { digitalWrite(cs, LOW); delay(500); /
Für jedes bit das du sendest erzeugt der uC genau eine Taktflanke.
-
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
Zeitgleich Ausgänge setzen (AtMega8515)
einfacher. Die Takte für die Einzeit liegen bei ca. 2ms. Aus bei ca. 10ms. Wenn ich jetzt den 8 Bit Timer nehmen. Bei 1Mhz / 1024 = ca. 2ms Ich könnte doch dann den Wert des Timers auslesen, indem ich das Register Abfrage: Wenn "Timer-Wert-Speicher" = 1 und 2 also 2ms und 4 ms = LED an. Wenn dann alle Schritte durchgelaufen sind, setze ich den Timer zurück. Oder gibt es noch eine andere Variante? Vielen dank für eure Hilfe!
-
Thread
c18 Bit Verschiebung
bei C18 + PIC 18Fxxxx eig. nur das das PORTPIN 7 an PORT B ist .. ist quasi ein Macro, um einzelne bits / portpins zu setzen bzw. auszulesen Am PIC ist das physisch gesehen PIN 40 ... PORTB ist als change interrupt definiert
ich dachte immer, man muss die flag nach prinzip "interrupt aus -> flag löschen -> interrupt an" setzen ... thx 4 help
-
Thread
Alternative Firmware für Sparmatic Zero Heizungsthermostat
. Die Entwickler der Sparmatic-Geräte waren nicht so blauäugig, die LockBits nicht zu setzen. Der verwendete Controller ist kein M128 sondern ein M169PA. Da ist nichts pinkompatibel, zumal der M128 gar keinen LCD-Controller enthält.
im Beitrag #1922843: > Die Entwickler der Sparmatic-Geräte waren nicht so blauäugig, die > LockBits nicht zu setzen. Der verwendete Controller ist kein M128 > sondern ein M169PA. Da ist nichts pinkompatibel, zumal der M128 gar > keinen LCD-Controller enthält. Jupp, dass das nicht der gleiche
-
Thread
I2C Atmega328p als Master und 24LC256 EEPROM IC als slave
SUCCESS; else return FAIL; } void send_address(char addr_w) { TWDR=addr_w; //7bit address + W bit (write bit) TWCR = (1<<TWINT) | (1<<TWEN); //Clear TWINT bit to start transmission of address while (!(TWCR &(1<<TWINT))); //wait for TWINT flag SET } result check_MT_slave_ack
Read-bit oder so?
-
Thread
PORT-BIT Verwendng mit define
Zwei Anmerkungen hätte ich dazu aber dennoch: [c] #define SBIT(port,pin) ((*(volatile struct bits*)&port).b##pin) [/c] Da würde ich um 'port' noch eine Klammer setzen und ich würde indirekt expandieren. Momentan hast du folgendes Problem: [c] #define PIN 1 #define PORT 0xAA+2 #define SBIT(port,pin) ((*(volatile struct bits*)&port).b##pin) SBIT(PORT, PIN) /* expandiert zu */ ((*(volatile struct bits*)&0xAA+2).b##PIN) [/c] Formulierst du aber so: [c] #define SBIT2(port,pin) ((*(volatile struct bits*)&(port)).
-
Thread
Microcontrollerboard mit 16Bit-Controller
setzt eine sehr hohe Taktgeschwindigkeit vorraus, größerer Adressraum allein hilft nicht. Deshalb setze ich noch immer den 68HC811E2 (8MHZ) ein um z.B. Ultraschall zu digitaliesieren (12 Bit Auflösung mit 400KHZ Abtastrate und 8 Kanälen). Auch di 16 Bitter währen hier schon allein mit der Adressensteuerung
@Manfred: 1. Deshalb setze ich noch immer den 68HC811E2 (8MHZ) ein um z.B. Ultraschall zu digitaliesieren (12 Bit Auflösung mit 400KHZ Abtastrate und 8 Kanälen). 2. Mit dem HC11 geht das nicht direkt denn der ist viel zu langsam
-
Thread
CarryBit - Wie und was
>...und wie kann man es beschreiben? CLR C Lösche das Carry-Flag SETB C Setze das Carry-Flag CPL C Invertiere den Inhalt des C-Flag ANL C,badr Das Carry-Flag wird überschrieben durch das Ergebnis der UND-Verknüpfung von Carry-Bit und dem
crazy horse schrieb im Beitrag #2434609: > im Fall von cjne ist es das zero-bit Nein, das Z-Bit ist eigentlich garkein richtiges Bit. Es ist direkt das NOR aus allen Bits des ACC. Peter Steiner schrieb im Beitrag #2434556: > Hier habe ich mir noch ein Beispiel für das
-
Thread
Warum "uint8_t" statt "char" Gesperrt
#3021859: > Ich schreibe uint8_t, weil ich die Trivialnamen hasse. Man sieht sofort, > dass das 8bit sind. mf Da setze ich noch eine drauf. Ich benutze bei uC nie die Namen mit "_t", sondern nur U8, S8, U16 ...
einem einzigen Programm plötzlich 4 verschiedene Namen plus "int" für eine vorzeichenbehaftete 32-Bit-Ganzzahl. _Das_ ist unleserlich... _t schrieb im Beitrag #3022124: > Da setze ich noch eine drauf. Ich benutze bei uC nie die Namen mit "_t", > sondern nur U8, S8, U16 ... ... dankeschön. Hoffentlich
-
Thread
Problem: 16 Bit Variable über UART zu empfangen
Byte in einer Variablen namens LSB. Das MSB und das LSB verknüpfe ich dann ODER und erhalte so den 16 Bit Wert. Anschließend setze ich den Zähler = 10, sodass die beiden if Bedingungen erst wieder erfüllt sind, sobald ich den Befehl schicke um in diese Variable zu schreiben. Viele Grüße & besten Dank
in einer Variablen namens LSB. > Das MSB und das LSB verknüpfe ich dann ODER und erhalte so den 16 Bit > Wert. Anschließend setze ich den Zähler = 10, sodass die beiden if > Bedingungen erst wieder erfüllt sind, sobald ich den Befehl schicke um > in diese Variable zu schreiben. Darf dein Programm
-
Thread
UART Zeichen Empfangen und nutzen
alles zum UCRSC nachgelesen und wenn ich da keine Bits setze, wird doch erwartet, dass ich 5 Bits sende, also passt doch alles, wenn ich im Terminalprogramm nun 5 Bits sende :)
schrieb im Beitrag #3258239: > Ich habe gerade alles zum UCRSC nachgelesen und wenn ich da keine Bits > setze, wird doch erwartet, dass ich 5 Bits sende Welcher AVR soll das sein? Ich habe noch keinen gesehen, beim dem der Inhalt des Registers nach einem Reset 0 ist.
-
Thread
Wie kann ich die Binärstellen einer Variable auf Ausgangsports verlinken
ich allerdings genau so. In asm sieht das in meinen LCD-routinen daher so aus: [code] LCD_4Bit_MSB_setzen: ; Einzelne Portbits setzen. Dieser Umstand ist wg. variabler Portzuweisung nötig disp_d7_aus disp_d6_aus disp_d5_aus disp_d4_aus SBRC temp, 7 disp_d7
Rechenleistung ;-) Am schnellsten dürfte die Methode mit den If-Anweisungen sein. Also einfach das Bit Testen und den entsprechenden Ausgang setzen oder zurücksetzen.
-
Thread
Hz in Bit umwandeln?
mikrocontroller der mir das signal, mit min doppelter abtastfrquenz abtastet und dann umwandelt (in bit?). so, wie geschiet diese umwandlung? ist die Hz Zahl gleich der bit zahl zu setzen? (habe mal was von parallelen AD wandlern, sukssesive aproximation gehört, ist das das was ich dafür brauche?),
1 MHz entspricht in aller Regel 135 bit pro Volt
-
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
LCD EA DIP204-4 Initialisieren
2000); //++++++++++++++++++ TEST ++++++++++++++++++// PORTC |= (1<<PC0); // Bit setzen PORTC |= (1<<PC1); // Bit setzen PORTC |= (1<<PC2); // Bit setzen _delay_ms(500); // warten PORTC &= ~(1<<PC0); // Bit loeschen PORTC &= ~(1<<PC1
{ //++++++++++++++++++ TEST ++++++++++++++++++// PORTC |= (1<<PC1); // Bit setzen _delay_ms(100); // warten PORTC &= ~(1<<PC1); // Bit loeschen //++++++++++++++++++ TEST ++++++++++++++++++// PORTD |= (1 << PD7); //
-
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
LEDs an PIC ausglimmen lassen
1<<0 => 1 , oder bit 0 ist on 1<<3 => 8 , oder bit 3 ist on INTCON = 1<<GIE|1<<T0IE ; -- INTCON = 0x84 -- oder 10000100b , also bit GIE und bit T0IE ist on, sprich die Zahl eins 7 mal nach links geschoben und 1<<T0IE
was du in led reinschreibst, wird auf den leds rausgeschrieben, ob mit direkter Zuweisung oder mit Bits setzen. Das fading ist automatisch, nachdem das Bit gelöscht wurde. Nur, das Register led wird alle 122µS gelesen, bzw aktualisiert. Also wenn du ein bsf led,0 machst, und dann ein bcf led
-
Thread
CNC Maschinchen
Sub Motory(ry As Integer ) Indy = Indy + Ry 'wenn obergrenze erreicht, dann auf anfang setzen If Indy > 4 Then Indy = 1 End If 'wenn untergrenze erreicht, dann auf ende setzen If Indy < 1 Then Indy = 4 End If 'ports setzen Portb.4 = My(indy).1
Sub Motorz(rz As Integer ) Indz = Indz + Rz 'wenn obergrenze erreicht, dann auf anfang setzen If Indz > 4 Then Indz = 1 End If 'wenn untergrenze erreicht, dann auf ende setzen If Indz < 1 Then Indz = 4 End If 'ports setzen Portc.2 = Mz(indz).1
-
Thread
STM32F103 Wann GOIO_ODR,PIOBSRR und BRR?!
> BRRB > um Leds zu toggeln z.B. BRR und BSRR lässt sich nicht lesen, das ist dazu da, atomar Bits zu setzen oder zu löschen. Atomar heisst, dass nichts dazwischenfunken kann. In Wirklichkeit passiert etwas in der Art wenn man BRR schreibt: * ODR wird eingelesen * die Bits die man in BRR in
Bits setzen }[/c] die IO-Pins "hochzählen", bzw. auf einen beliebigen (Variablen) Wert setzen, wenn diese 4Bit z.B. D3..7 eines typischen LCD darstellen sollen.
-
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
Taster entprellen
diese beiden Zeilen noch abkürzen: [c] // original if(KEY_in == 1) shift |= 1; // Bit 0 setzen else shift &= ~1; // Bit 0 löschen (&0xFE) // kürzer if(KEY_in == 1) shift |= 1; // Bit 0 setzen falls nötig. Default=0 // noch kürzer shift
sich diese beiden Zeilen noch abkürzen: // original > if(KEY_in == 1) shift |= 1; // Bit 0 setzen > else shift &= ~1; // Bit 0 löschen (&0xFE) > > // kürzer > if(KEY_in == 1) shift |= 1; // Bit 0 setzen falls nötig.Default=0 > > // noch kürzer
-
Thread
Automarer Zugriff auf 32-Bit Variable die in einer ISR verändert wird
(iieks!=gieks) L = iTicks; return L; } [/c] Das sieht zumindest sparsamer aus auf einer 8 Bit Maschine als ein nachträglicher Vergleich von zwei 32 Bit Zahlen. Und es kommt ohne Interrupt-Beeinflussung aus. W.S.
enable bit is cleared, the corresponding Interrupt Flag(s) will be set and remembered until the global interrupt enable bit is set, and will then be executed by order of priority. ...
-
Thread
LCD-Display & Schwarze Balken
Genaue Daten kenne ich nicht. Ich weiß nur, dass es 2x16 und im 4 bit Betrieb ist...
vor mir auflösen :) Dienen diese einfach > dazu, um bestimmte Pins auf Eingang oder Ausgang zu setzen? Einfach ein Byte. Also 8 einzelne Bits zu einer größere logischen Einheit zusammengefasst. Man könnte auch Speicherzelle sage. Welche Funktion das Register hat ist aber dadurch nicht fetgelegt.
-
Thread
Fusebits im AVR-Studio beim Tiny24 setzen
Hallo! Die Fuse-Bits des ATtiny24 kann ich nicht mit dem MYsmartUSB-Programmer (kompatibel zu AVR910) im AVR-Studio setzen, da ich den Controllertyp nicht auswählen kann. Ich gehe beim AVR-Studio über Tools –> AVRprog
aber der Controller lässt sich nicht auswählen. Hat jemand von euch eine Lösung, wie ich die Fuse bits des Controllers setzen kann. Danke für euere Hilfe.
-
Thread
Uart Kommunikation
Sende alle zwei Sekunden zwei aufeinanderfolgende 0x00 zur Synchronisation und setze ansonsten das nicht benötigte 16. Bit auf 1. Dann sind's immer noch gerundete 1920 Messwerte pro Sekunde.
pro Sekunde) 0xff 0xff übertragen, und das unbenutzte Bit bei Messwerten immer zu 0 setzen. Damit ist eine einfache Synchronisation möglich und fast nix an Bandbreite verschenkt. Wolfgang schrieb im Beitrag #7307553: > Stand in der Aufgabe nicht irgendetwas
-
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
Arbeiten mit RS 232
du? Ja ich sprach vom Erweitern, wie weiters beschrieben, jedoch dachte ich daran die einzelnen bits über UND-Verknüpfungen wieder zusammenzufügen und je nach ausgegebener "zahl" also zum Bleistift 00000100 dann kurzzeitig den Ausgang 4 unter spannung zu setzen. Aber ich gehe mal davon aus, dass
> Ja ich sprach vom Erweitern, wie weiters beschrieben, jedoch dachte ich > daran die einzelnen bits über UND-Verknüpfungen wieder zusammenzufügen > und je nach ausgegebener "zahl" also zum Bleistift 00000100 dann > kurzzeitig den Ausgang 4 unter spannung zu setzen. So was macht man in Software
-
Thread
LON Bus Windhager mitlesen/steuern
are "Bit time too short" With a min bit length of 12,55us there should be no "Bit time too short", right? Bit length 0 min: 251(12,55us) Bit length 0 avg: 251(12,55us) Bit length 0 max: 263(13,15us
code: 2 (Bit time too short) Bits sampled: 20 Bit duration: 511(63,88us)
-
Thread
RF01 und RF02 433 MHz Funkmodul
Bits. Bei diesem Problem weiß ich gerade überhaupt nicht weiter. Hat jemand eine Idee?
liest also den Status aus wenn ich das richtig verstehe und prüfst in der while Schleife ob das erste Bit eins ist, denn dieses Bit zeigt an ob im Fifo was ist. Dort hänge ich dann weil scheinbar nichts empfangen wurde. Um aber zu prüfen ob das erste Bit 1 ist, sollte man den Status Read Befehl doch dauernt
-
Thread
ARM, Philosophie und Programmierparadigmen
üblich ist und es mich als Programmierer auf dem höheren Level einfach nicht mehr interessiert welche Bits da Hardwarenah gesetzt werden, oder ob das nachlesen im Manual plus händisch setzen der SFRs à la AVR auch noch üblich/rentabel ist.
ist und es mich als Programmierer auf dem höheren > Level einfach nicht mehr interessiert welche Bits da Hardwarenah gesetzt > werden, oder ob das nachlesen im Manual plus händisch setzen der SFRs à > la AVR auch noch üblich/rentabel ist. Hängt allein von deinen Vorlieben ab, du kannst problemlos
-
Thread
[C] Böse Falle: Datentyp korrekt angegeben, falscher verwendet
, bei "Achtung!" Bei Konstanten muss man halt die passende Endung wählen. L = long, meist 32 Bit UL = unsigned long LL = long long, meist 64 Bit ULL = unsigned long long Oder einen Cast vor die Konstante oder Variable setzen und die EXAKTEN Datentypen aus stdint.h nutzen, da weiß man IMMER
im Beitrag #5764043: >> int16 mal int16 musste doch vom Typ her auch int16 ergeben? > > Nö. 16 Bit * 16 Bit sind 32 Bit. In PL/I schon. In C nur dann, wenn ein "int" 32 Bits breit ist.