-
Thread
-
Thread
MCUCR Register setzen (ATmega16)
folgendes problem: ich will bit 0 und bit 1 im register MCUCR setzten: wenn ich freie register so setzte und mit dem MCUCR maskiere funktionierts. allerdings ist das viel mehr schreibarbeit und sieht nicht so elegant und übersichtlich aus wie folgender code: sbi MCUCR, 0 sbi MCUCR, 1 dieser funktioniert jedoch nicht. compilermeldung: Error: number must be less than 32 Error: number must be less than 32 und ich versteh einfach nicht wieso?
-
Thread
? n-tes Bit in word setzen. n ist variabel.
C und ich muss wieder neu angelernt werden. :-( wie kann ich denn schnell und elegangt das n-te Bit ( n = 0..12 ) in C in einer 16-Bit breiten Variablen setzen ? n bekomme ich als uint8_t übergeben. muss ich das tatsächlich per for..next + shift machen ? Grüße, Stefan
-
Thread
MCU mit 16 Bit DACs?
und von dem nur die oberen 16 Bit benutzen. Schon hat man das.
geschrieben. Ueber die "kapazitive Entkopplung" muss er sich keine Sorgen machen. Und er will 16 bit. Warum und wie auch immer. Wenn hier schon die Vorschlaege mit PWM (also 1bit) und Tiefpassfilter kommen, dann schlag' ich halt mal vor, 12bit Wandler zu nehmen und nur 4 bit per Filter dazuzumauscheln
-
Thread
Atmega8 und I2C-Display startet nicht
nutze ich auch gerne. Wenn du, so wie ich, mit PonyProg flashst, kannst du die Häkchen genau so setzen, wie da zu sehen. Ansonsten das Hellgrau gedruckte lesen, die Bits sind invertiert... Edit: UPS... da war jemand schneller :p
funktionierte, hats nur 2 Zeilen gehabt. Im Datenblatt finde ich aber keinen Hinweis, wie ich Daten in 4Bit da reinschiebe (manuel, ohne Library). Hab auch schon ein paar Libs durchgeschaut, steige aber irgendwie nicht dahinter. Das Bit7 zum Beispiel ist ja zum setzen der DDR Ram Adresse, da komme ich
-
Thread
40 Spannungen einlesen und an AtMega8 übertragen
Wie kommst Du auf 7s? 1,2kBit / 10 Bit / 40 = 0,4s Und niemand sagt, daß Du mit 1,2kBit senden mußt. Du kannst z.B. 50kBit nehmen. Peter
ausführbarkeit. Zuerst kann ich doch nur entweder auf eine postive oder negative Flanke einen Interrupt setzen, laut Tutorial zumindest. Und ich versteh auch nicht wie ich einen Timer so konfigurieren kann das er bei einem vergleichszahlenwert nur ein bit seines Registers auf 1 setzt zb. CTC macht ja einen
-
Thread
ATMega: Reboot per Software auslösen?
Polyfuse in die VCC-Leitung, nen dicken Transistor, der VCC kurzschließt und die Brownout-Fuse setzen.
inistialiert - Durch den jmp 0 OHNE deaktivieren der Interrupts kann ein Interrupt zwischen dem 16-bit Writes auf SP stattfinden (das nennt man übrigens auch Race Condition) - Der Interrupt manipuliert den Stackpointer und überschreibt damit das Hilfsregiser für den 16-Bit Zugriff - Der 16-bit Write
-
Thread
Fuses setzen Parallel auf die "alte" Tour
Hallo, kann man die Fuses parallel programmieren ohne Programmer, wenn man an die Entsprechenden Pins DIP-Schalter anschließt und den Takt per Prellfreiem Taster macht? Denke so hat man früher auch die Programme eingegeben. Im Datenblatt steht das Parallel ein Kommando eingegeben wird usw. Das ein ganzes Programm natürlich zuviel wäre ist klar, aber es geht ja nur um die Fuses.
-
Thread
Probleme Tachosignal Auswertung
Aktivieren der externen Referencspannung //*/ [/c] Dann habe ich noch eine Frage mit dem setzten der Bits im Register: Wenn ich jetzt z.B. den AD - Wandler starten möchte, muss ich doch das BIT ADSC im ADCSRA-Register setzen. Jetzt möchte ich aber erst später im Programm dieses BIT setzen und schreibe
Schreibweise so ok??? Grundsätzlich: ja. > Jetzt möchte ich aber erst später im Programm dieses BIT setzen und > schreibe an die entsprechende stelle im Programm; > > [c] > ADCSRA = _BV ( ADSC ); //Starte AD - Messung > [/c] Damit löscht du aber die Anderen Bits wieder. Um 1 Bit zu setzen
-
Thread
TOP2049 programmer opensource software
mich mit dem Patch und QEMU durchwursteln. Ich werde mir das zumindest mal auf meine ToDo Liste setzen.
nicht ganz:P) für attiny25/45/85 HV programming. Konnte zwar solange herumpatchen bis attiny13 HV bit file mit dem attiny85 ging, nur leider fehlte mir immer noch ein bit, nach ein paar stunden genug gehabt und stange attinys bestellt ...
-
Thread
ir senden mit tiny2313
wenigstens das Senden ausserhalb der INTx ISRs im Hauptprogramm gemacht. Also im INTx Fall Flag setzen "taste wurde gedrückt" und weitere INTx sperren. Dann in der Hauptschleife Flag prüfen, Senden, Pause, INTx freigeben. Im RC5-Protokoll ist auch ein sog. *Togglebit* vorgesehen (3. Bit im Datenwort
habe nur auf den Sender mit Fabians Code reagiert hat, weil bei beide tiny2313 habe ich die fuse-bits gleich gesetzt. Ich werde dan mal die fuses so setzen: http://www.engbedded.com/cgi-bin/fc.cgi?P_PREV=ATtiny2313&P=ATtiny2313&V_LOW=CD&V_HIGH=DF&V_EXTENDED=FF&M_LOW_0x3F=0x1C&M_HIGH_0x0E=0x0E&M_HIGH
-
Thread
Mikrocontroller auslesen
den STM Controllern ist, das man die ReadOut Protection > auch innerhalb der Firmware testen und setzen kann (löschen hab ich noch > nicht probiert :) allerdings ist die Readout-Protection erfahrungsgemäß bei den meisten µCs weitestgehend wirkungslos, da man das zuständige Bit problemlos löschen
Schreiber schrieb im Beitrag #4039001: > stimmt so nicht, man kann das Bit löschen ohne den Flash zu löschen: Wie geht das?
-
Thread
8-Bit Latch mit "Read-back"
char bit5: 1; char bit6: 1; char bit7: 1; }TYP_PORT1; TYP_PORT1 port1 _at(0x50000); // Die Variable port1 auf Adr.0x50000 legen void main() { port1.bit0 = 1; // Bit0 setzen if(port1
Wenn es darum geht, Bits einzeln zu setzen/löschen zu können, ohne den vorherigen Zustand kennen zu müssen, dann tuts vielleicht auch der '259. Da gehen die Bits dann allerdings nur einzeln, weil adressierbares Latch. Dafür
-
Thread
AVR und C++ - ein Versuch
<EnableInterrupt> interruptEnabler; led2::dir<Output>(); led2::on(); AVR::Timer8Bit<0>::prescale<256>(); const uint16_t prescale = 256; const uint8_t timerTopValue = (Config::fMcu / prescale) / 1000_Hz; AVR::Timer8Bit<0>::ocra(timerTopValue); AVR::Timer8Bit<0>
auf Ebene der Applikation bringt einen echten Mehrwehrt aber doch nicht die Abstraktion über das setzen eines Pins.
-
Thread
Atmega 8 + dallas 18s20 + Neuling (never ending story)
delay_us(480+20); //minimum 480µs DDRC&=(1<<PC5); [/c] Hier setzt du in der ersten Zeile das bit PC5 in DDRC. Dann wartest du, und setzt in DDRC alle Bits auf 0, _ausser_ PC5. Das lässt du auf 1. Vermutlich wolltest du schreiben: [c] DDRC &= ~(1<<PC5); [/c] Wenn du ein Bit auf 0 setzen
>Wenn ich aber zwischen dem wr_byte ein printf setze bekomme ich diese >Information: ich meinte natürlich wr_bit.
-
Thread
Arduino Mega 2560 Pro Mini - Arduino des Grauens!
Verstehe das nicht mit den Fuses. Im DB stehen Lock Bits. Der Fehler wird wohl auch nicht mehr reproduzierbar sein, nachdem der Controller einmal gebrannt wurde. Die LockBits werden durch den ChipErase zurückgesetzt. Unter 29.4 steht aber ausdrücklich
Das hatte ich doch geschrieben. Beim Rücksetzen der LockBits wird auch der Flash gelöscht - sonst wären die LockBits ja sinnlos... Im Falle des TE dürfte es aber nicht an den Fuses liegen.
-
Thread
ATmega Bootloader Lock Bits
verifizieren, ob der Code richtig aufgespielt wurde. (höchstens noch beim ersten Mal, wenn ich die BootLockBits nach dem verifizieren setze) Theoretisch müßte man die BootLockBits zusammen mit dem Code löschen können, um sie nach dem verifizieren wieder zu setzen. Aber so viel ich weiß, kann das dazu erforderliche
Hey, welche Lock-Bits genau muss ich denn setzen, damit das Auslesen des Programmes verhindert wird? Beim Atmega 2561 würd ich jetzt nach Datenblatt LB-Mode 3 setzen. "Further programming and verification is disabled
-
Thread
EEPROM Schreibfrequenz auf eine Adresse
Micha schrieb im Beitrag #2144558: > mit EECR=0x06; setze ich EEMPE nicht zurück (0x06=0b00000110). Du schreibst damit einen 8Bit Wert, was bei EECR durchaus einen Unterschied macht im Gegensatz zum Setzen einzelner Bitz mit SBI/CBI, wie auch bei vielen
Nö, das Bit heißt beim Tiny26 nur anders als beim Tiny13...
-
Thread
EA DOGL - Befehlsaufbau
: [c] //DOGL - Graphic LCD (Software SPI) #use spi(MASTER, DI=PIN_D7, DO=PIN_D8, CLK=PIN_D6, BITS=8, stream=dogl) . . . . output_bit (a0_glcd,0); output_bit (cs_glcd,0); delay_us (5); //Initialisierung spi_xfer (dogl,0x40,8); spi_xfer (dogl,0xA1,8); spi_xfer (dogl,0xC0,8); spi_xfer
); //8 Pixel langer Strich (als Test) spi_xfer (dogl,0x40,8); spi_xfer (dogl,0xB0,8); output_bit (a0_glcd,1); spi_xfer (dogl,0xFF,8); output_bit (a0_glcd,0); //Slave deaktivieren output_bit (cs_glcd,1); [/c] Wo könnte hier der Fehler liegen? Die Pins sind sicher richtig gemappt beim
-
Thread
Kleines Tiny13 Sensorboard
hinaus bis kurz vor der nächsten LH-Flanke gültig. > - das Telegram ist wie folgt zu codieren (die Bits sind im Folgenden > durchnumeriert, 0-23. Das Telegram soll MSB first ausgegeben werden) > - Bits 23-14: AINP-CHANNEL1 > - Bits 13- 4: AINP-CHANNEL2 > - Bit 3: DINP1-LOW > - Bit
- Bit 16 - 17: AINP-CHANNEL1, höherwertige 2 Bits - Bit 18 - 19: AINP-CHANNEL2, höherwertige 2 Bits - Bit 20: DINP1-LOW - Bit 21: DINP2-LOW - Bits 22-23: Checksumme über das Datentelegram
-
Thread
SRAM mit RESET Eingang gesucht
schon einen Wolf gesucht. Daher hier. Ich suche ein SRAM mit folgende Eigenschaften: - mind. 16kBit - es MUSS einen RESET Eingang besitzen, um die ganze Speichermatrix in < 5µs in einen definierten Zustand (alle Bits = 1 oder alle Bits = 0) zu setzen - Vcc 5V oder 3,3V - Organisation x1, x4, x8
doch im Eingangstext: "... um die ganze Speichermatrix in < 5µs in einen definierten Zustand (alle Bits = 1 oder alle Bits = 0) zu setzen" Die eigentliche Anwendung ist für die Frage nicht relevant und führt in diesem Forum erfahrungsgemäß zu unerwünschten Diskussionen.
-
Thread
Spannung an Ausgangsports zu niedrig
du dann sicher auch die kleinen Pulse sehen die dein Controller ausgibt. -> Also: Schau nach dem Bit-Setz-Problem
Felix schrieb im Beitrag #1873854: > -> Also: Schau nach dem Bit-Setz-Problem Hallo nochmal, das mit dem Bit-Setz-Problem stimmte. Aber da ich euch noch den Quellcode schuldig bin: #include <inttypes.h> #include <avr/io.h> #include <avr/interrupt.h>
-
Thread
Wieso vor allem AVR µCs bei Bastlern?
Entwicklungsumgebung war mal ein Punkt aber ob Arduino oder PICKit ist egal. Ob auf den Kits nun AVR 8bit, AVR 32bit, PIC 8bit, PIC 32bit, STM32 oder MIPS drauf ist hat mit der Entwicklung nicht viel zu tun, außer man braucht spezielle Dinge die nur XYZ kann :-P AVR 8bit und PIC 8bit dürften 50:50 bei
Sandro schrieb im Beitrag #3452437: > Beim dem Alten PIC enthielt der Befehl für goto mur 8 bit Adresse. Bei den PICs mit 12-Bit-Befehlen hat CALL 8 und GOTO 9 Bits. Aber der PIC1650 von 1977, von dem die direkt abstammen, hatte sowieso nur 512 Worte ROM. Unterprogramme und Tabellen mussten
-
Thread
16-Bit Timer im Comparemode funktioniert nicht
aktuelle Quellcodeausschnitt: void init_timer(void) { TCCR0 |= (1<<CS01); // CLK/8 8-Bit Timer TCCR1B |= (1<<CS11)|(1<<CTC1); // CLK/8 16-Bit Timer TCNT0 = 0; // Reset Timer0 TCNT1 = 0; OCR1A = 125; // Compare-Wert für 16-bit Timer festlegen
noch nicht" Das hat überhaupt nichts mit C zu tun, sondern mit dem Lesen des Datenblatts: Bit 3 - CTC1: Clear Timer/Counter1 on Compare Match When the CTC1 control bit is set (one), the Timer/Counter1 is reset to $0000 in the clock cycle after a compareA match. If the CTC1 control bit is cleared
-
Thread
G-LCD bei Pollin
Kann man nicht die 4 Bits von ein andere trennen, beiden Clock signalen gleichseitig ansteurn und als en normales 8 bit Dual Scan benutzen ?
Bei einem FF pro Makrozelle braucht man min. folgendes: - 8 FF: 8Bit Daten für Multiplexer zum LCD - 19 FF: 16Bit Adresszähler für Leseop. (15Bit+1Bit Chip select) + 3Bit Bitzähler für Multiplexer - 8 FF: 8Bit Datenregister für Schreibop. - 16 FF: 15Bit Adressregister
-
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
einzelne bits ändern in einem Array oder komplett anders ?
github.com/benwilliam/AVR/tree/master/LED in der LEDMatrix.c findest du funktionen um genau ein bit in einem array zu setzen [c]unsigned char setWorkingBufferBit(unsigned char x, unsigned char y, unsigned char value)[/c] in der canvas.c findest du etwas höhere graphik funktionen unter anderem
geht sie nicht > an ?! Die Funktionen LedAn und LedAus schalten nicht die LEDs selbst, sondern setzen nur im Array die korrespondierenden Bits. Wo ist Dein Code, der den Array-Inhalt per Multiplex an die LEDs ausgibt?
-
Thread
Hilfe Ladereglung Atmega16 Assembler
oO ... Bitte befasse Dich auch mit 16 Bit Zahlen auf einem 8 Bit µC. Dann verstehst Du was es mit SPH,SPL und high(), low() auf sich hat. Das untere Ende vom RAM interessiert den Stack bzw. den µC nicht. Wenn Du zuviel auf den Stack legst
vielen Dank für deinen Hinweis. Das war wirlich ein böser Fehler. Ich wollte eigentlich nur das ADSC Bit setzen. Hab es gleich korrigiert sbi ADCSRA,ADSC ist besser so. Gruß Werner
-
Thread
Ansteuerung EA DIP203-LCD
extended Function set" [/c] ist doch wirklich nicht so schwer. Und danach würde ich das RE Bit mit einem weiteren Function Set Kommando wieder auf 0 setzen.
Bit auf 1 setzen * dann den 4-Zeilen Modus ausschalten * dann mit der 'unteren' Interpretation das RE Bit wieder auf 0 setzen (momentan steht es ja noch auf 1) * und erst dann gilt wieder die eingekringelte
-
Thread
24 bit signed data in 32 bit int (ARM SAMS4) und das sparsam über UART
0x80) temp |= 0xFF000000; int32_t temp2 = (int32_t)temp; [/c] Wenn ich nun aber die obersten 8 bit einer signed 32bit variablen zu 1 setze, bekomme ich zwar das Vorzeichen - aber doch auch eine viel größere Zahl!? Müsste ich nicht eigentlich nur bit 31 für das Vorzeichen zu 1 setzen und den rest
sign extension". http://en.wikipedia.org/wiki/Sign_extension > Wenn ich nun aber die obersten 8 bit einer signed 32bit variablen zu 1 > setze, bekomme ich zwar das Vorzeichen - aber doch auch eine viel > größere Zahl!? Nein, zmindest nicht, wenn du im Zweierkomplement rechnest. Gehen wir mal
-
Thread
avr asm bit-Ansteuerung
Programm in einem Register eine binäre Zahl eintragen, wo ich immer nur 1 oder 0 für das entsprechende Bit bekomme. Es handelt sich um PS2. Wie mache ich das am besten, ich hatte das so gedacht: Bit an der Stelle k setzen/löschen: sbr state, k nur ist das Problem, das es in Assembler dahinter
Martin K. schrieb: > Habt ihr da eine Idee? Am einfachsten machst du das so, dass du *immer* Bit 0 setzt und nach links verschiebst. Ergebnis = 0 für alle Bits 0 bis 7 { schiebe Ergebnis eine Stelle nach links setze Bit 0 abhängig von dem was du empfangen hast } Bsp
-
Thread
STM32 USART1 IT Bytes verlust
MMM schrieb im Beitrag #7351522: > Wenn dies > der Fall ist, dann setze ich darauf einen Breakpoint. Vergessen zu erwähnen: Testwiederholung: Breakpoint entfernen, kurz laufen lassen und neu setzen. Damit auch niemand auf die Idee kommt die verlorenen Bytes sind vom
Bit. Bei Start + 9Bit Daten + Parity + Stop sind das 12 Bitzeiten. Ist der Sender nur etwas zu schnell, geht das nächste Startbit verloren. Ein weiteres Stoppbit gibt dann deutlich mehr Luft für Timingabweichungen
-
Thread
Verzweigungen
, 1 rjmp MotorZW3 ;################################################## ;Setze Bits in Byte für die Linienerkennung######## LinksGroesser: sbr Linienerkennung, 1 rjmp MessungZW05 LinksKleiner: cbr Linienerkennung, 1 rjmp MessungZW1 MitteGroesser: sbr Linienerkennung
zwangsläufig kleiner. Da es keine dritte Möglichkeit gibt, ist der zweite Vergleich überflüssig. >;Setze Bits in Byte für die Linienerkennung######## >.... Warum macht du das nicht sofort nach dem Vergleich. Das Herumgespringe ist unübersichtlich. MfG Spess
-
Thread
LCD Routine Funktioniert nicht
am Port ausgeben D7 D6 D5 D4 0 0 1 1 0 0 1 1 und der Controller ist im 8 Bit Modus, dann wertet er das als 2 Konfigurationsanweisungen, die ihn 2 mal in den 8 Bit Modus setzen würden (für N und F saugt er sich jeweils etwas aus den Fingern) Ist der Controller aber im 4 Bit
Ausgabe von 0 0 1 1 0 0 1 1 als 1 Konfigurationsanweisung, mit der er in den 8 Bit MOdus schaltet und er ein N und ein F von jeweils 0 setzen soll Aber auf N und F kommt es hier nicht an. Wichtig ist, dass der Controller nach diesen beiden Ausgaben auf jeden Fall im 8 Bit Modus
-
Thread
Suche 16 bit CPU mit externem Buszugriff
kByte Segmente? IMHO gibts zwar einen longjmp, aber beim Datenzugriff muss man das Segmentregister setzen. Und das willst du in Assembler programmieren? Na dann, viel Spaß. Bevor du dich auf ein 16-Bit Abstellgleis begibst, programmiere doch erst mal einen Corex-Mx in Assembler. Ich finde den Thumb2
Also Retro, aber schnell und wenig Pins (THT) und 16-Bit-Speicherinterface ...? Mouser sagt: gibt es nicht. Geht auch nicht! 20MHz, 64 DIP, 20-Bit Adress - 8-Bit Dateninterface : Z8S180 Ansonsten: 32-Bit-CPU, 40-DIP, Externes EEProm, welches in
-
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
Input Capture ATmega16
AND-vernüpft, sind also (Bit in) TIMSK und (Bit in) TIFR gleichzeitig gesetzt, dann gibt es den Sprung zur ISR. Das Setzen der Bits in den Flags (TIFR) übernimmt die Hardware (Timer) bei dem dafür vorgesehenem Ereignis (Pegelwechsel
erreichst, was du erreichen möchtest. Falls du damit 0x04 löschen willst, dann löscht du alle anderen Bits, nur nicht 0x04. Den die Bits in TIFR löscht man durch Setzen. Ist jedenfalls bei allen anderen AVRs so, wird beim Mega16 sicher nicht anders sein. Steht sicherlich auch im Datenblatt. Sehen wir
-
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
STM32 Programming Reference
Wenn ich nun z.B die Wortlänge auf 8bit setzen möchte, muss ich ja M1 und M0 in USART_CR1 zu 0 setzen. In AVR konnte ich ja direkt USART_CR1 &= ... In ARM aber muss ich nun USART_CR1_M abändern, doch wie setze ich diese beiden bits?
| USART_CR1_TE | USART_CR1_RE | USART_CR1_UE; [/c] Alle Bits haben Namen! Du kannst Dir auch die Auto-Vervollständigung zunutze machen: Wenn Du weißt daß du das TXEIE Bit in einem der USART config Register setzen willst (aber vergessen hast in welchem und wie
-
Thread
8-Bit Überlauf erkennen, bei addtion einer Konstanten
Subi setzt die Flags H,S,V,N,Z und C. Bei der > Beispielrechnung wird aber keine Bedingung zum Setzen eines dieser Flags > erfüllt. > > MfG Spess Hallo, ich habe schon oft gemerkt, das Leute die sich mit einer Materie schon lange auseinander setzen oder Ihnen diese absolut klar ist, sich
#1747846: > Wie erkenne ich nun Programmtechnisch elegant (Assembler), das der > Zahlenbereich von 8-Bit überschritten wurde ? Wie schon von Peter gesagt wurde, das Carry-Bit reagiert schlicht und einfach nur invertiert. Also einfach die Verzweigung nach der Subtraktion gegenüber der eigentlich gewollten
-
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
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
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
ISR und atomarer Zugriff auf 16bit Variable
> Da sieht man mal die Vorteile eines 32-Bitters, da ist das alles for > free;) AVR ist 8-Bit, oder W.S.?
gehabt. Sowas kann in auch mal entstehen, wenn man generischen Code verwendet, der nicht immer mit 8 Bits auskommt.
-
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
DCF-Uhr, Sonnenstand, TWI-Port, Alarmfunktion für m8 in C
Feiertagen umzusetzen: Im 'day of month' (1..31) sind noch zwei Bit unbenutzt (Bit.5 , Bit.6). Wenn man zum Programmstart und von da an jeweils täglich um 00:00 berechnet, ob dieser Tag ein Feiertag ist - und dann das Ergebnis in Bit.5 (wenn Feiertag) und Bit.6
einlesen können. Ich habe eine Frage bezüglcig togglen. Wenn ich einen Modus 3 (umschalten) -Alarm setze, beim dem die Minute durch setzen des Bit7 nicht berücksichtigt werden, dann schaltet der entsprechend Ausgang nun jede Minute um, oder wie oder was? Ich dachte zuerst klasse, für eine Stunde einschalten
-
Thread
PC-Tastatur mit AVR ersetzen
---------------------------- bitweiter: dec temp2 ; Anzahl der ausgegebenen Bits runterzählen brne Schiebe_1 ; Wenn noch keine 8 Bits ausgegeben -> Schleife bilden pop temp2 parity_bit: ;---------------------- cpi parity, 0 breq null rcall send_eins rjmp
Operation Verwendung für --------------------------------------- ODER Bit setzen UND Bit löschen; Bit zum Abfragen ausmaskieren XOR Bit toggeln (aus 0 mach 1 und umgekehrt)
-
Thread
Takteinstellung ATtiny84A
wirklich daran, dass der ADC im FreeRunningModus läuft... wenn ich in der ISR vom ADC einen breakpoint setze, komm ich gar nicht mehr raus... Ich bin gerade dabei, den ADC auf den Timer0(8bit) zu triggern. das erreiche ich, wenn ich das ADTS2 Bit im ADCSRB register setze. Den Timer 0 hab ich aber für PWM
machen Nein. >oder wandelt der danns chon jedes mal, wenn Timer0 überläuft? Ja. >(das ADSC bit im ADSCRA ist gesetzt)... Brauchst du nicht setzen. Das wird bei Free Running nur zum Starten gebraucht. MfG Spess
-
Thread
Brownout beim flashen setzen
Hallo, kann man beim flashen den Brownout einschalten? Atmega128 in C Es sind bei der Produktion einige Platinen mit nicht gesetztem Brownout entdeckt worden. Kann man das in der firmware intgrieren dass das Bit gesetzt wird? Es soll via Bootloader geflasht werden ohne ISP-Programmer, ist das möglich?
-
Thread
Variablengröße 10-Bit-Integer gesucht
> Teile ich die max. 1023 auf 4 Variablen (8-Bit) auf 1023 kann mit 10 Bit dargestellt werden. 4 Variablen zu je 8 Bit macht aber in Summe 32 Bit. Du willst mir doch jetzt nicht erzählen, dass es effizienter ist, 10 Bit in insgesammt 32 Bit
> Ich habs jedenfalls gleich verstanden, was er meinte: > > 10 Bit in 16 Bit ergibt 37% Verlust > 3 Worte a 10 Bit in 32 Bit aber nur 6%. Nur hat er das nicht implementiert :-) Er hat 1 Wort a 10 Bit in 32 Bit > Ich denke aber eher, die Optimierung sollte besser