-
Thread
C und LCD Frage.
der Initialisierung setze ich das DDR-Register zusammen für alle Pins. Man muß dann eben die DDR-Bits einzeln setzen, wenn die Ausgänge auf verschiedenen Ports liegen. Peter
100 pro wie die ganze Lib funkt aber Teilweise. Wie lange sollte ich warten, da ich RW nicht abfragen kann? static uint8_t lcd_waitbusy(void) { delay(16000); /* wait 16ms*/ delay(16000); delay(16000); delay(16000); register uint8_t c; /* wait until busy
-
Thread
ds1820 Fragen
durch den Master nicht noch einmal aufgerufen. Dann wäre beides in etwa gleich schnell. Auf die Abfrage einzelner Sensoren lege ich keinen Wert.
Beim ROM-Scan wird jedes Bit 2x gelesen und 1x gesendet, ist also ~ 3mal langsamer. >Auf die Abfrage einzelner Sensoren lege ich keinen Wert. Ein sehr sinnvolles Konzept . . .
-
Thread
5 zeilen C code
welcher µC? ein bit toggelt man mit P1OUT ^= 0x04;
Die Frage ist, ist if schneller als reine Rechnung? Auf einem AVR wäre if schneller, da man Bits von Registern direkt abfragen kann.
-
Thread
Wieder mal Tastenabfrage geht das auch so?
als nur von 2 Abtastungen auszugehen (das wäre die Methode mit der festen Zeit). Die seltenere Abfrage ist also nur eine schlechtere Lösung des Zähleransatzes. Das kannst du mit Peda's EXOR-Zähler-Ansatz auch so lösen: [c] i = key_state ^ ~PINA; // key changed ? ct0 = ~( ct0 & i ); // reset or count ct0 -- 1-Bit-Exor-Zähler i &= ct0; // count until roll over ? key_state ^= i; // then toggle debounced state key_press |= key_state & i; // 0->1: key press detect [/c]
-
Thread
C-Programmieren: Spiel Robots
mehr einfach nur ein Strassenname und eine Hasunummer übergeben, sondern eine komplette Adrdesse [c] void printAddress( struct Adresse Ort) { ... [c] und da die Funktion eine komplette Adresse mit allem drum und dran erhält, brauch ich dann in der Argumentschnittstelle nicht mehr alles einzeln
Eingabe ) ) { x_ziel += DeltaX[Eingabe - '0']; y_ziel += DeltaY[Eingabe - '0']; } ... [/c] die auch noch auf einen möglichen Geschwindigkeitsvorteil im Bereich einzelner Taktzyklen zu untersuchen wäre. Durch Zusammenfassen der Deltas in ein struct könnte man eventuell noch weitere einzelne
-
Thread
Geschwindigkeit einer Schleife
Genauer gesagt muss es ein Uart statusregister geben, das ein bit enthaelt, das den TxReady zustand enthaelt. Das bit abfragen und warten. Ein Interrupt ist zwar praktischer
frei ist: [C] while (!(IFG1 & UTXIFG0)) ; [/C] Zeichen auf den Weg bringen: [C] TXBUF0 = answer1[i]; [/C] Im Verbund: [C] // zuerst abfragen, ob die Schnittstelle für die
-
Thread
EleLa - Elektronik Lagerverwaltung ab V2.0
V2.2.13C07 kann mit der Versionsabfrage geladen werden. - Win32/64 - Linux32/64 - Hilfe-Datei - Updatebeschreibung - Windows Setup-Paket - Linux-ZIP 32/64 Bit - Feature: Nun wird bei "Prüfe Menge für
bevor man irgendwas drückt ;-) das Anklicken des 6.? Unterordners führt zum Absturz Elela V2.2.13C07-64 Windows 7 64Bit Visual Studio sagt mir: Unhandled exception at 0x00412084 in EleLa.exe: 0xC0000005: Access violation writing location 0x0000000000dc0ff0.
-
Thread
3x4 tastenmatrix auslesen ..auf ein neues
[c] Ergebnis = PIND; //Spalten abfragen ... Ergebnis += PIND; // Zeilen und Spalten verknüpfen (addieren) [/C] Was soll das werden ? Wie willst Du nun unterscheiden, ob das Bit im
Sonic wrote: > Klar macht die switch-Abfrage das so, [...] Wenn das: [pre] Output: Excellent Good OK Mmmmm.... You must do better than this What is your grade anyway? [/pre] klar ist, warum behautest du hier: [c] i = 4;
-
Thread
globaler counter funzt net wie erwartet
== 1){ uint8_t sec_takt; damit ist es doch immer atomar, oder kommt gcc auf die idee die bits einzeln zu setzen?
ähnlich wie Hardwareregister) mit dem Schlüsselwort volatile (flüchtig) versehen werden, damit der C-Compiler berücksichtigen kann, dass diese Variablen jederzeit (durch das Auftreten des Interrupts) gelesen oder geschrieben werden können. Ansonsten würde der C-Compiler das regelmäßige Abfragen oder
-
Thread
Zustandsvariablenblöcke als serielle Bits an Schieberegister ausgeben?
zusammen, ich bin aktuell zwar noch mit vielen strukturellen Vorarbeiten zu einem Projekt (STM32 µC) beschäftigt und muss noch viel lernen. Dennoch habe ich mich schon gefragt, wie man wohl in C folgendes Problem löst: Ich möchte viele einzelne LEDs mit Tastern schalten. Aufgrund der schieren Menge
Einlesen der Zustände über das PISO und Ausgeben über das SIPO irgendein System verwenden, um auf die einzelnen Bits zuzugreifen und die in dieser XOR-Logik zu verarbeiten. Also quasi eine Art Byte - zu - Variablen - Konverter....;-) Und umgekehrt....
-
Thread
Virtual Comport mit 250 Hz unter Win7 auslesen
ohne Timer. Einfach in > einer schleife. Ich vermute mal selbst dabei kommst du nicht auf 250 > Abfrage/s. Hierbei könnte man USB mit seiner Latenz ein Problem > darstellen. > > [c] > while(true) { > Send("FETCh\n"); > Read( ... ) > } > [/c > > > Gibt es keine Möglichkeit dem Gerät
die es spielt überhaupt keine Rolle ob hier Echtzeit vorhanden ist oder nicht. jeden Wert einzeln abfragen geht einfach nicht schneller!
-
Thread
"Absaugen" von Daten aus Web-Datenbank verhindern?
passwort"-Analog zu nutzen, vor allem weil es exakt derselbe oder gar weniger Aufwand ist als eine einzelne unique deindexte 256bit folge. (Select * from x where id... if (row[32c]!=GET[code]) =>) oder eben( Select * from x where 256c ...if(!row) =>) macht keinen nennenswerten unteschied.. >> Man
passwort"-Analog zu nutzen, vor allem weil es exakt > derselbe oder gar weniger Aufwand ist als eine einzelne unique deindexte > 256bit folge. > (Select * from x where id... if (row[32c]!=GET[code]) =>) > oder eben( Select * from x where 256c ...if(!row) =>) > macht keinen nennenswerten unteschied..
-
Thread
EleLa - Elektronik Lagerverwaltung ab V1.2.11A26
Bei manchen Abfragen waren SQL-Injections möglich. Es konnte zwar nichts manipuliert werden, aber dennoch ist es ein Bug. Ich bin jetzt alle SQL Befehle durch gegangen und habe den Code geändert. Die EXE V1.2.11C03
Hallo Markus, ich versuche das Programm unter Win7 64bit zu installieren. Das Verzeichnis gebe ich an als: "C:\Program Files (x86)\EleLa" (übliches Programmverzeichnis in Win7). Die Installation ist bei dem Verzeichnis unvollständig, ohne jegliche Fehlermeldung
-
Thread
Gesetzte Bits zählen
Wenn die Bits eh einzeln reinkommen, dann zähl sie doch einfach dabei. Geht schneller und einfacher, als sie erst umständlich irgendwo reinzuschieben und dann erst zu testen. [C] unsigned char countbit(
also ich würde beim Einlesen der Bits einfach 2 Zaähler mitlaufen lassen Bei 8051 würde ich über Carry einlesen und es gleich abfragen. zB. In Port X,C ( hast Du ja schon irgendwie ) If C=1 dann inc Zähler 1 If C =0 dann inc
-
Thread
4x4 Matrix Tastatur am FPGA
pattern verundet, welches a) die jeweilige Frequenz detektiert, wenn es passt und b) die hochfrequenten bits per exor zurückbiegt, damit das nächste pattern ein tieffrequentes Signal "sieht". Beispiel: Eingangsfrequenzen für z.B. 4 Schalter, mit Schalter 2 auf "aus" Bit 0: 1010101010101010 Bit 1:
geringere Frequenz). Die anschließende Dezimation erzeugt wieder das gelesene Wort, diesmal ohne das Bit 0, da aus dem Strom absichtlich entfernt. Stufe1: 0011001111001100 Das erspart eine Filterung mit z.B. Integerwerten, um das hochfrequente Bit 0 zu überlesen. Der Bit-Strom 0 wird quasi abgezogen
-
Thread
bidirektionale Datenübertragung zwischen 2 Atmega 8
SPS_out_5bis8 &= ~0xC0; // Bit 6,7 löschen 00 SPS_out_5bis8 |= 0x80; // Bit 7 setzen 10 SPS_out_5bis8_negiert |= 0xC0; // Bits 6 & 7 setzen 11 am höchstwertigem Bit
außer das 2 Variablen weniger da sind und und jeweils um eine zeile gekürzt wurde bei der if abfrage bleibt der PORT A komplett auf null gebe ich Aktor_1bis4 einzeln heraus so stimmen die werte mit den gesendeten überein gebe ich aber Aktor_1bis4_negiert einzeln heraus so bleiben die Bits 4
-
Thread
If-Abfrage in ISR
> if (PINA & empfangspin) dich denke nicht das das besser ist. Denn er weiß nicht wie viele Bits in empfangspin gesetzt sind. Damit kann ich nicht ein Einzels Bit vom Port abfragen.
gesetzt ist oder mehrere. Die Assembler-Befehle sbic/sbir zum Abfragen einzelner Bits in I/O-Registern, auf die du dich vermutlich beziehst, gehen sowieso nur mit Immediate-Werten. Besser ist die Variante von A.K. gegenüber der ursprünglichen auf jeden Fall, da man
-
Thread
Das Ende von 8bit?
32-Bit Hauptprozessoren, d.h. auf einen 32-bit µC kommen mehrere 8-bit. 6) Auch wenn der Preis der Cortex-M0 jetzt schon oft den von 8-bit µC unterbietet, ist oft die Stückzahl nicht so groß, dass ich a)
einen µC auf MIPS Basis sehr sexy. So viel netter ist ARM da nicht. > PS: Ich brauche aktuell einen PIC (gerne 8Bit) der >= 5 Touch-Buttons > abfragen kann und mit einer CR2032 versorgt mind. 1 Jahr lang
-
Thread
Pin-Code Abfrage
) auch nur Zahlen sind. Das Stichwort ist hier ASCII-Tabelle. In Einlesen() bekommst du einen acht Bit Integer und machst daraus ein Zeichen. Das geht kürzer: [c] uint8_t key = ....; char zeichen = '0' + key; [/c] Somit müsste auch klar sein, wie man aus einem Zeichen z.B. der Eins wieder die
??? Bit3 ist Bit3, wie soll das mit einem Shift einfacher zu verstehen sein? Der Portpin heißt auch nicht PINA<<3, oder? Pack mal ein paar der Konstrukte in eine if Abfrage mit mehreren Bedingungen. Dann
-
Thread
einzelner Pin einlesen
Hallo Leute Ich habe eine frage, ich versuche mit einem xc866 von infineon ein einzelnes bit an einem paralellport abzufragen. Prigrammiersprache c Mit P3_DATA Wird der ganze Port 3 eingelesen also alle 8 Bit. Wenn ich jetzt aber an bit 3 also P3_3 auf ein signal (high,1) warte
Was der C-Compiler bzw. die libc für den Prozessor jetzt für Funktionen zum Zugriff auf einzelne Bits bietet, weiss ich nicht, aber auf jeden Fall funktioniert das hier: if (P3_DATA & (1)) P3_0 = 1 else P3_
-
Thread
Tasten abfragen oder so
Hallo, ich hab da mal ein Problem, vielleicht hat jemand einen Ansatz wie ich aus dem Gedankenloch komme, also ich hab einen ATmega8 mit internen Oszi 4MHz, daren einen PCF8574 mit vier Tasten und vier LED, einen zweilten PCF mit LCD was ohne Probleme funzt. Ich kann die Tasten einlesen und auch über den m8 steuern, nur bekomme ich folgendes nicht hin 1. ich möchte mit Taster1 LED! einschalten, gaht auch, soll aber nach einer Zeit wieder ausgehen bzw bei nochmaligen Tastendruck ausgehen. 2. wenn LED1 leuchtet durch Taste2 gelöcht wird und der die LED aus sind. Erst bei Tastendruck 2 LED2
-
Thread
C; AVR: Eingänge und Ausgänge setzen
verfügbar", PIN6 und 7 Ausgang PORTD Eingang. So, ich dachte ich kann das alles so realisieren: [c] DDRA = 0xFF; DDRB = 0xFF; DDRC = 0b11000001; DDRC &= ~(0b00000010); PORTC |= (0x0b00000010); DDRD &= ~(0xFF); PORTD |= (0xFF) [/c] Ist dies korrekt? Bei Abfragen bekomme
ich die Eingänge von D ändere. Kein Wunder. Eingänge werden über das PIN Register abgefragt. [C] PORTA = PIND; [/C] Siehe Tutorial deiner Wahl, ganz am Anfang > Wenn ich nun einzeln abfrage wie z.B. > if(PIND0) > PORTA |= (1<<1); Das fragt keinen Pin ab. PIND0 ist nur eine etwas
-
Thread
einzelne pins als eingänge auslesen
nun eigentlich die wesntlichsten sachen verstanden,aber ein problem hab ich noch.ich kann zwar einzelne pins durch sbi und cbi als ausgänge setzen aber wie kann ich einzelne pins auslesen. beispiel: ich möchte den pin PD0 auslesen und ihn auf eine variable schreiben. int taster; if (taster ==1)
waren einstmals einfach nur Hacks, um im AVR-GCC (bzw. der AVR-LIBC) überhaupt einen Zugriff auf einzelne IO-Bits zu ermöglichen (genauso wie inb und outb). Mittlerweile ist aber eine Methode implementiert, die erstens kompatibel zur gängigen Atmel-Syntax (und damit auch zu allen anderen AVR-C-Compilern
-
Thread
Tasten abfragen am ATTINY13 mit Assembler
ausgeben [/code] oder benutze, wie die meisten, die für Bitoperationen vorgesehenen Befehle zum Bit-setzen, Bit-löschen, Bit-abfragen [[AVR-Tutorial]]
[/c] Das ganze Bit-Rumgewurstel macht dann der Compiler für Dich.
-
Thread
Bit verschieben in C
Bytes mit einer Oder Funktion weiß aber nicht ob das funktioniert. Ich weiß auch nicht wie ich einzelne Bits in einem Byte durchschieben kann. mfg
Ob 1 oder 0 ist egal. Geschoben wird unabhängig vom Inhalt [C] unsigned char a = 0b10101111; a >> 3; [/C] Dann steht in a 0b00010101 Achtung bei "signed", wenn das erste bit eine "1" ist wird ne 1 nachgeschoben und keine 0. Aus [C] char a = 0b10101111
-
Thread
Wie einen Ausgangspin mit if abfragen
> Ich würde gern in meinem Programm einen einzelnen Ausgangspin mit if > abfragen ob der Ausgang gesetzt ist oder nicht. An Hand des DDR Registers weisst du, ob ein Port als Eingang (Bit=0) oder als Ausgang (Bit=1) konfiguriert ist. Wenn du
, dass der Port als Ausgang konfiguriert ist, kannst du bei PORT herausfinden, ob der Ausgang LOW (Bit=0) oder HIGH (Bit=1) gesetzt ist. [C] void beispiel_konfiguration(unsigned char buffer) { DDRB |= 0xff; PORTB = buffer; //In buffer ist Wert 0 - 255 } void abfrage(unsigned char pin
-
Thread
ILI9341 langsam Verbesserungsvorschläge?
Die bits kannst du in einer Schleife erhalten: [c] shl_val=0x01; for(i=0;i++;i<8) {if(databyte & shl_val)SETPIXEL(); else CLEARPIXEL(); shl_val<<=1; } [/c] Am besten alles einzeln ausschreiben,
Wenn ich mir bei so grundlegenden Dingen wie der Verkabelung unsicher bin, teste ich die Pins einzeln mit einem Blinky durch: [c] ... #define set_bit(var, bit) ((var) |= (1 << (bit))) #define clear_bit(var, bit) ((var) &= (unsigned)~(1 << (bit))) #define toggle_bit(var,bit) ((var) ^= (1 <<
-
Thread
c-code Schneller in Assembler? Gesperrt
Alternative. Algorithmisch läßt sich halt in der Regel mehr rausholen als durch Mikrooptimierungen an einzelnen if-Abfragen oder Inkrementierungen. Demont schrieb im Beitrag #3420688: > mir fehlen 3µS für eine Passende sync :/ > Ohne diese Abfrage geht es, mit 5 dieser If Abfragen klappt es auch > nur mit der 6 Dauert es zu lange :/ Mit welcher Taktrate läuft der µC denn? Bei den eingebauten 8 Mhz z.B. wären 3 µs ja 24 Taktzyklen. Es wäre etwas verwunderlich, wenn eine einzelne if-Abfrage mit Inkrementierung so viel brauchen würde, vor allem, wenn durch die vorherigen
-
Thread
Faktensammlung Buderus EMS
Faktor 2: 0a: min: 5°C 2a: ???: 21°C? 3c: max: 30°C 2a: value: 21°C Abfrage auf dem KM200: /heatingCircuits/hc1/temperatureLevel/eco Antwort: 10 f9 00 ff 01 b9 04 1f 00 00 00 0a 00 00 00 1e 00 00 00 2d 00 00 00
3c 00 00 00 2e Wieder Faktor 2: 23: min: 17,5°C 2a: ???: 21,0°C? 3c: max: 30,0°C 2e: value: 23,0°C Abfrage auf dem KM200: /heatingCircuits/hc1/fastHeatupFactor Antwort: 10 f9 00 ff 01
-
Thread
C enum typedef Frage
Bitfeldern in Strukturen und ihren Nachteilen leben. In C++ gibt es Bitfelder in der Stdlib aber auch (noch) nicht ideal, für diesen Zweck, geeignet ... Was ich mir im C++ Standard wünsche wäre die Abfrage während der Compilezeit ob ein Wert im enum enthalten
Hans-Georg L. schrieb im Beitrag #6997905: > Was ich mir im C++ Standard wünsche wäre die Abfrage während der > Compilezeit ob ein Wert im enum enthalten ist oder nicht. Wird aber > schon diskutiert ... Gibts schon. Stichwort enum class ...
-
Thread
Anfänger braucht Hilfe in C
sind... Und im Zweifel kann man sich immer noch die Syntax (wenn man sie nicht mag) in ein paar C-Makros verstecken und sich die 'Syntax' zurechtzaubern, die einem zusagt. [C] #define IS_BIT_SET( p, b ) ( (p) & (1<<b) ) #define IS_BIT_CLEAR( p, b ) ( ! IS_BIT_SET( p, b ) ) ... if( IS_BIT_SET( PIND, PD0 ) ) ... [/C] das sieht doch schon ganz ordentlich aus.
-
Thread
PORT-Zustand abfrgen und zurück schreiben
[c] #define writeBit(port,bit,value) { if ((value)>0) (port) |= (1<<bit); else (port) &= ~(1<<bit); } #define readBit(port,bit) (((port) >> (bit)) & 1) uint8_t backup=readBit(PORTA,4); writeBit(PORTA
einzelne oder mehrere IOs atomar setzen, löschen >> oder umschalten kann, >Nicht nur das, auch gibt auch noch für jedes Bit n eigenes Register --> >Bit-Banding Die 32 Bit Dekadenz ;-) Naja, mit
-
Thread
Tasten entprellen - Bulletproof
die zugehörigen "Jobflags" (also die Bits in key_press) löscht ist von Fall zu Fall unterschiedlich. Es hat (eigentlich) keine Auswirkungen auf die ISR-Routine. Bei 2 Tasten würde ich sie einzeln abfragen (sbrc) und einzeln löschen (cbr).
und muss ich mir nicht antun. Ich arbeite gern mal mit einer 24-Bit-Zahl, wenn 16 Bit nicht mehr ausreicht. C würde mich zur 32-Bit-Zahl zwingen. C ist mir einfach zu kryptisch, ich kann mich auch nicht damit abfinden, dass jeder Hauptprogramm main.c heißen muss
-
Thread
Kommunikation zwischen zwei STK500
Vielen Dank Troll! Hat super geklappt! [c]PORTD=PINB;[/c] Kann man das auch mit einzelnen Pins machen?
/c] > > > Die Abfrage scheint allerdings invers zu sein, was Ihrer Erklärung > entgegen spräche. Es gibt auch noch eine 2-te Möglichkeit :-) Ein 1 Bit am PORTD schaltet die LED aus und nicht
-
Thread
frage zu defines TRUE/FALSE
das auch allgemeiner, nicht spezifisch für C. In Java ist ein boolean 8 Bit, kann aber wegen dem Alignment effektiv bis zu 64 Bit belegen.
Das ist Compiler abhängig. " Die Größe einer _Bool-Variablen ist plattformabhängig und kann 8 Bit übersteigen." https://de.wikipedia.org/wiki/Datentypen_in_C#bool Es ist bekannt, das in ASM eine Abfrage auf 0 implementiert ist, alles andere benötigt mehr Befehle. Wenn FALSE = 0 ist, dann
-
Thread
Bit in einem Int16 abfragen
Hi, für eine Gleitkommadarstellung habe ich ein 16-Bit Wert (32 war mir zu lang). diesen möchte ich jetzt für arithmetische Funktionen zerlegen. Meine Frage ist nun, ob dies einfacher geht, als zu schauen, ob z.B. das erste Bit gesetzt ist, indem man guckt, ob die Zahl kleiner ist als 32768. Bzw. kann man vielleicht sogar bits "rauskopieren"? Also Stellen z.B. 1-8 in einen 8bit-int reinschreiben??? Vielen Dank schon einmal im Voraus, Ozzy
-
Thread
2 Eingänge abfragen
Nicht einzeln, sondern maskiert abfragen?
entweder > H oder L haben soll geschaltet werden. Dann würde ich dir Vorschlagen, erst einmal jeden Einzelnen der beiden Eingänge /einzulesen/. Und anschließend in einem getrennten Rechenschritt /auszuwerten/. Also etwa so: [c] if (PINB & (1<<PINB6)) e1 = 1; else e1 = 0; if (PINB
-
Thread
benötige Hex-Datei für PIC16F628A
PORTA = mask; if ( mask >>= 1 ) // rotate 1-Bit continue; mask = 0b10000000; } while(1); } [/c]
Stephan S. schrieb im Beitrag #7542780: > Das würde ich in ASM mit BTFSS für jeden einzelnen Eingang machen und > vorher die anderen Eingänge abfragen. ACK.
-
Thread
While Uart abfrage
adresse zum Master wie volgt: Slave sendet; uart_putc(40); Master empfang: i=0; while ( ( c2 = uart1_getc() ) != 0x28 && i < Len2 - 1 ) in[ i++ ] = c2; in[i] = '\0'; muss ich in der While != 0x28 das so abfragen oder While == 40 mfg
c2; in[i] = '\0'; ..... Ausgabe auf mein lcd bekomme ich nur die daten von adresse 41 angezeigt. spreche ich die svlaves nur einzeln an gehts.
-
Thread
Frontplattendesign für "8 bit Computer"
stirbt die > Menschheit vorher aus. Den Speicher mache ich schon aus SRAM chips, nicht aus einzelnen 8 bit Register ICs. Die größten SRAMs die ich finden konnte die halbwegs "einfach" ansteuerbar sind haben 4194304 bytes (https://www.digikey.at/en/products/detail/alliance-memory-inc/AS6C3216A
Andre G. schrieb im Beitrag #6944723: > Den Speicher mache ich schon aus SRAM chips, nicht aus einzelnen 8 bit > Register ICs. Das ist aber gemogelt.
-
Thread
Tasterverarbeitung mit ARDUINO-C
Bernd S. schrieb im Beitrag #7398636: > Wie kann ich in C bzw. C++ testen, ob im Arbeitsregister ( GPR ) r5, > dass Bit0 gesetzt ist ? Einfach die Adresse des Arbeitsregisters abfragen und schauen ob das Bit0 gesetzt ist sollte eigentlich kein Hexenwerk
gezeigt hat, wie es richtig in C++ auszusehen hat bzw. hätte. [c] if(bitRead(r5,0)) == 1 digitalWrite(LED0, !digitalRead(LED0)); [/c] AVR8ASM [avrasm] sbrs r5,0 ;Bit0 im GPR 5 gesetzt? falls ja naechsten Befehl ueberspringen
-
Thread
400 Outputs
Und wie willst du so jedes einzelne Bit individuell setzen? Geht das? Wär ja cool...
Meinte statt ST6C595 diesen STPIC6C595TTR (8Bit) o. STPIC16C595 (16Bit)
-
Thread
Byte in Bit's zerlegen in C
bei den beiden obigen variablen c0idr_addr und c1idr_addr ginge es folgendermaßen: bit zugriff: c0idr_addr.b.idrX = 1...0; (X von 0...15, je nachdem welches bit du haben willst) byte zugriff: c0idr_addr.byte.X = 0x00
Hallo zusammen, ich weiß ja nicht, was Du mit den einzelnen Bits anfangen willst. Denkbar wäre folgende Abfrage: // Bit 0 ist gesetzt if (byte_xyz & 0x01) { } // Bit 0 ist nicht gesetzt if ((byte_xyz & 0x01) == 0) { } Als Abfragewerte mußt Du
-
Thread
Warum gibt es kein Bit-Array in C?
[35]; [c] set_bit(char *data, int bitnummer) { int index, mask; index = bitnummer / 8; mask = 1 << (bitnummer % 8); data[index] |= mask; } [/c] Löschen und Abfragen geht genau
. Ich finde wie Flipsi oder Michael S1 es gezeigt haben (Bit-Field oder Array mit Makro) ist es gut nachvollziehbar. Man kann die Bit-Field Version ja noch mit Michaels Indizierung erweitern: [c]#define BIT(x) bytes[x>>3].bit##(x&0x7)[/c] Geht natürlich
-
Thread
Abfragen ob Taster mehrmals gedrückt wurde
. Arbeite dich für das nächste Mal zuerst in die Grundlagen ein... - Maskieren - Schieben - Bits setzen - Bits löschen - Entprellen - Funktionen <-> ISR - Timer, PWM, ADC... - RS232, SPI, I2C... ... Kauf dir ein kleines Demo-Board wo alles forhanden ist (ein paar Taster, LEDs...) und fang
Arbeite dich für das nächste Mal zuerst in die Grundlagen ein... > > - Maskieren > - Schieben > - Bits setzen > - Bits löschen > - Entprellen > - Funktionen <-> ISR > - Timer, PWM, ADC... > - RS232, SPI, I2C... Ich hab so das Gefühl, es hapert auch beim Konzept einer Variablen. Ich denke sogar
-
Thread
128 Bit Risc
Anfang geschrieben hat, fehlt den > SIMD-Befehlen das Carry-Flag, d.h. man kann sich aus einer > 64Bit-Addition keine 256Bit Addition zusammenbasteln. Man kann den 64 bit overflow bei addition ohne carry bit erkennen, wenn (unsigned) vpaddq a,b,c < max(a,b) ist. (add c,2^64 if c below a or b). Wenn
Anfang geschrieben hat, fehlt den >> SIMD-Befehlen das Carry-Flag, d.h. man kann sich aus einer >> 64Bit-Addition keine 256Bit Addition zusammenbasteln. > > Man kann den 64 bit overflow bei addition ohne carry bit erkennen, wenn > (unsigned) vpaddq a,b,c < max(a,b) ist. (add c,2^64 if c below a or
-
Thread
Input If abfrage
Hallo, Ich habe eine einfache Iff Input, dann Output (LED) programiert. Allerdings macht der Mikrocontroller genau das umgekehrte von dem was ich will. Ich möchte, wenn Input low, dann schalte Led ein wenn input high dann Led aus; er machts jedoch genau umgekehrt. Button habe ich keinen ich halte einfach Masse und Input zusammen oder nicht. controler ist ein Atmega8a. Hier das Programm:: [c] int main(void) { DDRB =0b00000000; //Input Pint DDRD = 0b00000010; //Output Pin PORTB = 0b00000100; //Input Pint while(1){ if (bit_is_clear (PINB , 2)) { PORTD
-
Thread
Wie lange prellt ein Taster in der Regel?
den Teil mit dem zurücksetzen hab ich natürlich nicht kopiert, aber was soll da groß stehen :) [c] else { key1cnt = 0; key1stat = 0; } [/c]
com tz0 ;L-Bit zählen 0,2,->1, 1,3,->0 eor tz1,tz0 ;H-Bit zählen 0,2,->tz1 toggeln and tmp,tz0 ;Änderungen nur dann erhalten, wenn im Prellzähler and tmp,tz1 ;beide Bits gesetzt sind (Zählerstand
-
Thread
RS232 Schnittstelle mit C über Visual Studio Bitweise auslesen
oder 0V beträgt. Mein einziges großes Problem ist hierbei nur, dass ich nicht weis wie ich die einzelnen Inputleitungen des RS232 in Visual Studio abfragen kann.
Steuerleitungen der RS232, naja... ich würds so nicht machen. Was hälst du von dieser Idee (da du ja C kannst): Nimm dir z.B. ein kleinen µC (ATtiny) definiere dort bis zu 8 Eingänge und sende jede 500ms ein Byte (in dem die 8 Eingänge als Bits hinterlegt sind) über die UART an den PC und dort kannst
-
Thread
MSP430 Interrupt
uword uwPulseTimeLeft; ubyte ubRetrys; } TS_RAUMEINHEIT; [/c] und die wichtigen Konstaten, wo es möglicherweise fehler geben könnte: [c] // * Uart Buffer- Size #define UART_BUFFER_SIZE 5 // * Uart0 Flags #define BIT_ULFLAGS_UART0_RECEIVING
SW_GET_INPUT || RXBUF1 == SW_GET_ALLOCATION || RXBUF1 == SW_GET_PERIODE) [/c] wenn ich daraus eine switch anweisung mache, die immer das gleiche macht, gewinne ich dadurch Zeit? im falle von "RXBUF1 == SW_GET_PERIODE" muss der Controler ja erst alle anderen abfrage. Da an