-
Thread
Reservierte LockBits/FuseBits
Tatsächlich, man kann keine reservierten Fuse Bits einstellen.
Nur fragt deine Frage etwas anderes als das was du eigentlich wessen wolltest: >reservierte LockBits bzw. FuseBits auswählen Ein Bit ist eben ein Bit, also ein achtel eines Bytes, z.B. Bit 0, Bit 1, Bit 2 usw. Somit ging also jeder davon aus, du meinst die Bits die keinerlei Funktion haben und
-
Thread
16Bit Timer Problem (läuft nicht) | ATmega128
out SPL,r16 ldi r16,HIGH(RAMEND) out SPH,r16 ser akku ; Alle Bits in Akku setzen out DDRB,akku ; PORTB als Ausgang (alle Bits 1) ldi msTimer,0x99 out OCR1AL,msTimer ldi templ,0 out OCR1AH,templ ldi templ
/www.mikrocontroller.net/topic/102971#new Ich habe das mal überflogen, kann es sein das ich beim 16bit Timer wirklich TCNT1 bei jedem durchlauf neu auf 0 setzen muss? Beim 8bit Timer läuft das ja von selbst ...
-
Thread
ATmega8: Das Buch
völlig anderen Berufsumfeldern kommen, dann gibt es NICHTS, was sie wissen SOLLTEN. >Aber bei Bit >und Byte anzufangen ist in diesem Fall nicht notwendig. Natürlich. >Auch Grundverknüpfungen wie UND und ODER u.s.w. sollten nicht erklärt >werden. Die vor allen Dingen. Gerade beim Setzen/
Hersteller, wenn er vom Nutzer invertierte Logik >erlangt. Jeder gelöschte Flash-Speicher ist mit H-Bits gefüllt und wird mit L-Bits beschrieben. Also eher logisch. MfG Spess
-
Thread
Suche Parallel auf Glasfaser
Anschlüßen an die DACs senden. Mit der RS232 Schnittstelle würde ich dann auch das gleich machen. 8 Bit an das IC anlegen die CS setzen und die 8 Bit werden dann seriell per Glasfaser an den µC gesendet. Dann kann ich mir ja mein eigenes Slip Protokoll ausdenken, so das ich ein START_Byte und STOP_Byte
vorgeschlagen (zumindest mal drüber nachgedacht), auf der Seite vom Loch, wo die DACs sind, einen 16-bit DSP oder 32bit µC (a la ARM/PIC32) zu setzen, der diese dann so direkt ansteuern kann. Und auf der anderen Seite dann irgendeinen µC, der ja auch kleiner sein kann, als der bisher verwendete XMEGA.
-
Thread
ILI9341 langsam Verbesserungsvorschläge?
so funktionierts ohne probleme und ist auch viel viel schneller, als setzen einzelner bits. [c] void FillScreen(int color) { SetCol(0,239); SetPage(0,319); SPI_Transmit_Command(0x2c); int k; for(k=0;k<2;k++) { unsigned int i; for(i=0;i<38400
der Schöpfer dieses Codes) setzt brutal einen gesamten Port auf Output obwohl er ja nur ein Reset-Bit setzen will. Kann im Einzelfall schon mal unerwünschte Nebenwirkungen haben.
-
Thread
HILFE PORTPINS setzen und auslesen in C
Eingang B1 PORTB &= ~(1 << 0); // Löschen Augang B0 else PORTB |= (1 << 0); // Setzen Ausgang B0 } } [/c]
PORTB(8Bit) mit 0b00000001 plus invertierung Ausgang wird HIGH --> LED geht AUS else PORTB |= (1 << 0); // Setzen Ausgang B0 -->ich verknüpfe den PORTB((8Bit) mit 0b00000001 setze Ausgang auf
-
Thread
4bit auf 8bit Port schreiben
Hallo liebe Leute, in zwei Situationen stoße ich bereits auf das Problem wenn ich einen 4bit Wert auf einen 8bit Port legen und die restlichen 4bit unangetastet bleiben sollen. Zb hat der Port den Wert 0b01011100. Auf die niederwertigen 4 bit soll nun der Wert 0b0101 geschrieben werden.
kombinatorische Schritte machbar? In C gehts nur mit einer Sequenz aktuellen Wert holen die 4 Bits auf 0 setzen die neuen 4 Bits auf 1 setzen neuen Wert ausgebem
-
Thread
Schreibweisen
funktion nicht machen, aber man kommt nahe dran. Beispiel: void writePort(uint8_t portNr, uint8_t bitsToSet, uint8_t bitsToClear); writePort(0, (1 << 7), 0); // port 0, bit 7 setzen writePort(0, 0, (1 << 3)); // port 0, bit 3 löschen writePort(0, (1 << 5), (1 << 6)); // port 0, bit 5 setzen, bit 6 löschen Achtung der allererste Schreibzugriff initialisiert mit Nullen in alle nicht explizit gesetzten bits. #define MAX_PORTS 2 static uint8_t gPortState[MAX_PORTS]; void
-
Thread
Fehler bei Bit manipulation
neuen Beitrag geschrieben, da das Thema von gestern nichts mit zu tun hat. Habe ein Problem bei der "Bit Manipulation". Habe ein kurzer Hand einen Test-Sourcecode geschrieben. Das Problem bleibt bestehen. Wenn ich Bit 7 setze/lösche, wird die nachfolgende Adresse auf 0xFF/0x00 gesetzt. #if
Siegfried Saueressig schrieb: > Das Problem bleibt bestehen. > Wenn ich Bit 7 setze/lösche, wird die nachfolgende Adresse auf 0xFF/0x00 > gesetzt. Ist korrekt bei diesem Code: > #define SET_BIT(var,bit) ( (var) |= (1<<(bit)) ) > #define DEL_BIT(var,bit) ( (var)
-
Thread
Einbrennen von RAM bits?
wieder anlegt. Also auch wenn der Speicher gelöscht wurde, könnte man immer noch fest stellen ob das 1-bit mehr ausgeleiert ist, als das 0-bit. Das bleibt auch ohne Spannung ewig so, bis eben das umgekehrte bit auch so lange von der Zelle gehalten wurde. Wie realitätsnah eine Angriffsmethode auf diese
Experimente. Wenn man den Chip stark abkühlt, kann man Minuten bist Stunden später noch Ladungsreste in den Bits abtasten. Der Effekt ist umso größer, je länger das Bit zuvor fest auf einem Wert gestanden hat.
-
Thread
Timer auf Null setzen
, DISABLE); } // Timer2_Configuration void TIM2_IRQHandler(void) { TIM_ClearITPendingBit(TIM2, TIM_IT_Update); Timeout = 0; } // void TIM2_IRQHandler void start_timer(void) { Timeout = 1; TIM_Cmd(TIM2, ENABLE); // Timer starten } void stop_timer
sie auch, mehr nicht. Das Timerregister ist direkt zugreifbar, man kann es jederzeit lesen oder setzen, also auch auf 0 setzen.
-
Thread
Junkers CAN-Bus Protokoll
Sampling: "); Serial.println(settings.mTripleSampling ? "yes" : "no"); Serial.print("Actual bit rate: "); Serial.print(settings.actualBitRate()); Serial.println(" bit/s"); Serial.print("Exact bit rate ? "); Serial.println(settings.exactBitRate() ? "yes" : "no"); Serial.print
:24.739 -> Actual bit rate: 10000 bit/s 11:01:24.739 -> Exact bit rate ? yes 11:01:24.739 -> Sample point: 64% Sender: Configure ACAN2515 Bit Rate prescaler: 16 Propagation Segment: 8 Phase segment 1: 8 Phase segment
-
Thread
AD-Werte auf LCd ausgeben
initialisieren mit "|" -> "oder-Operator" um die einzelnen Bits zu setzen - die _BV() ist irgendwo als Funktion deffiniert*/ for (;;) { ADMUX=ADC0; /*AD-Wandler Multiplexregister initialisieren
initialisieren mit "|" -> "oder-Operator" um die einzelnen Bits zu setzen - die _BV() ist irgendwo als Funktion deffiniert*/ for (;;) { ADMUX=ADC0; /*AD-Wandler Multiplexregister initialisieren
-
Thread
pollin kamera au-85
subsampling ist ja super schlecht erklaert im datenblatt es gibt auch div einstellungen dazu... auch bits die man setzen muss wenn sub sampling aktiv ist. und die ganzen anderen sub samplings verwirren ziemlich. unterscheiden sich wohl an welcher stelle das sub sampling gemacht wird. ich hab gelesen das
wait for hsync low while(mPORTEReadBits(BIT_8)!=0) { mPORTDSetBits(BIT_1); mPORTDClearBits(BIT_1); } } while( picLine != 240 ); // ** pwm on ConfigIntTimer2(T2_INT_ON); [/c] Zum testen habe
-
Thread
Timing Problem
Zu toggelnde Bits in einem Hilfsregister setzen, dann mit EOR toggeln. EORI gibt es leider nicht. ...
denn nur, wenn ich in einer Schleife warte bis UART bereit und dann vielleicht NULL sende ? Das TXC-Bit manuell auf 1 setzen hat zumindest nicht gefunzt...
-
Thread
Bits einen Namen geben
programmiere grad einen atmege8 (assembler) und wollte wissen ob ich die Pins vordefinieren bzw. den Bits in Registern Namen geben kann, da ich zum Ansteuern ein Statusregistern angelegt habe und die Pin belegung sicher noch einige male ändern werde. Es geht mir nur darum, dass ich nicht immer die Bits
weitermachen wo ich aufgehört habe. Außerdem wäre dann der Code um einiges übersichtlicher wenn direkt beim Bits setzen/löschen klar ist welche Funktion betroffen ist. also -> SBI state, funktion1 (das wäre optimal) hoffe mir kann da einer weiterhelfen. MfG Hannes
-
Thread
Probleme mit 16Bit Timer1
Timer1 in interrupt routine auf Null zu setzen! // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x10;
Was ich brauche ist nur mal ein Beispiel wie ich jetzt 10ms mit dem 16Bit Timer1 realisieren kann. Und nicht mehr. Warum wird heir so ein großes Geheimnis daraus gemacht. Grrr...
-
Thread
bit invertieren
Das ist aber kein Bit, welches invertiert wird, sondern ein Byte, was gespiegelt wird.
http://en.wikipedia.org/wiki/Bit-reversal_permutation "Bit reversal is most important for radix-2 Cooley–Tukey FFT algorithms" nur um den englischen Begriff auch mal zu nennen
-
Thread
Timer Interrupt, möglichst nahe an die 32khz bringen mit 8MHz Quarz
HighBit mit null setzen TCNT1L = 0x00; // TCNT LowBit mit null setzen OCR1AH = 0x27; // OCR1AH setzen mit 0x27 OCR1AL = 0x10;
(1<<CS00)); //----- Timer 1 TCNT1H = 0x00; // TCNT HighBit mit null setzen TCNT1L = 0x00; // TCNT LowBit mit null setzen OCR1AH = 0x10; // OCR1AH setzen mit 0x27 OCR1AL = 0x27;
-
Thread
STM32: To HAL or not to HAL
Zum Bits setzen / löschen bietet sich bei der STM32-Familie das BSRR-Register an. Damit kann man atomar beliebig viele Pins eines Ports setzen UND/ODER löschen: GPIOx_BSRR (x = A..I/J/K) In den oberen
, aber ich setzte die Bits in den ersten 16bit und lösche in den letzten 16bit. Aber vielleicht ist mein STM32F411 ja anders...
-
Thread
Maskieren modern?
Bitnummer 3 generiert (und sich über einen Semantikfehler erbricht, wenn jemand versucht, mehr als ein Bit im Operanden zu setzen). Hat man aber nicht. Also schieben wir beim AVR fröhlich die Bitnummern herum. :-)
Naja, Bitfield-structs für IO-Register gibt es ja durchaus (und die lösen das potenzielle Setzen von Bits in falschen Registern genauso), beispielsweise bei vielen Cortex-M. Beim AVR hatten wir das mal beim ATmega128RFA1 (und Nachfolgern) gemacht, aber dort hat das seitens Atmel und dann Microchip
-
Thread
Pollin 16080 Touch mit ATMEGA32 und BASCOM
im Bereich von den 160x80 irgendwo ein Pixel zu treffen ! Klär mal auf. Um ein Pixel zu setzen/löschen, muss man ja erst mal die Cursorposition (=RAM-Adresse) setzen, dann entsprechend setzen/löschen mit Befehl 12/13 (&He, &Hf) die Pixelposition übergeben, das wars dann schon. Wenn man das
> dann läuft das Display im Grafikmodus. Aufgeteilt in 23 Zeichen pro > Zeile mit 7 verwendeten Bit pro Byte. Genauer, es sind 22 Zeichen mit 7 > Bit-Breite und und das letzte mit 6 Bit-Breite (7*22 + 6 = 160 Pixel) je > Zeile. was soll denn der Mist - im Grafikmodus nicht die volle Bytebreite
-
Thread
Welcher Cortex-M0 Controller wird der 8-Bit Killer?
Massenprodukte raus. Dazu kommt die große Masse an konservativen Ingenieuren, die noch lange Zeit auf 8 Bit setzen (das spiegelt sich in diesem Forum ja wider). Trotzdem wird in 5 Jahren 8 Bit wohl nur noch ein Thema für Nischen- und Altprodukte sein.
Antimedial schrieb im Beitrag #3482114: > Ingenieuren, die noch lange Zeit auf 8 Bit setzen (das spiegelt sich in > diesem Forum ja wider) Nee, da spiegelt sich wider was in vielen konkreten Projekten tatsächlich Sinn macht.
-
Thread
made from scratch Firmware für Wittig/Welec Oszilloskop W20xxA
nötig ist irgendwelche Benachrichtigungen durch die Gegend zu schicken, sondern lieber irgendwo ein Bit zu setzen und einzelnen Routinen schauen dann im Pollinverfahren noch ob etwas interessantes für sie vorliegt. Wie oft dann eine Routine nachsieht könnte man dann noch mittels Zähler beeinflussen.
für Kanal 2 verändern, weil der User am Knopf gedreht hat. Es wird deshalb die Modellfunktion zum Setzen aufgerufen, sinngemäß: [code]ModelValueSet(eChannelAttenuation, 2, eChAtt50mV)[/code] Die Wertübergabe geschieht mit einem Universaltyp, ich habe ihn mal variant_t genannt, der eine 32bit-Union aus
-
Thread
Bit hin und her shiften
wird an PortB übertragen. LED1 = an; Wenn ich jetzt nun auf einen Taster drücke möchte ich dieses Bit eine stelle nach Links bewegen. Also dann auf: 0b11111101 Wenn ich dann auf einen anderen Drücke möchte ich dieses Bit wieder eine stelle zurück setzen. Hat einer einen Plan wie ich das anstellen
Problem, das bei ROL/ROR immer das Carry-Flag mitgeshiftet wird, wenn man wie Dennis eigentlich nur die Bits shiften möchte? Eine Möglichkeit wäre natürlich vor jedem Einzelshift das Carry entsprechend zu setzen, aber wenn man um mehrere Bits shiften will wäre das ja vergleichsweise zeitaufwendig...
-
Thread
LCD EA DOG-M und Bascom
; // rote LED aus Bit setzen PORTB |= (1 << PB2); // gelbe LED aus Bit setzen PORTB &= ~(1 << PB3); // grüne LED an Bit löschen break; case 5 : LCD_Print(2,0,"Oil Temperatur"); PORTB |= (1 << PB0); // rote LED aus Bit setzen PORTB |= (1 << PB2); // gelbe LED aus Bit setzen PORTB &= ~(1 << PB3); // grüne LED an Bit löschen break; //case 7 : //LCD_Print(2,0,"AUX 1 EMK"); //PORTB &
-
Thread
Es geht einfachnicht in meinen Kopf rein.
<<PD4) + (1<<PC5) > u.s.w. Ja was willst Du nun, feststellen welche Bits in den genannten Ports gesetzt sind oder willst Du portübergreifend Bits auf einmal setzen ?
r16,PortC ; Inhalt von Port C ins Register 16 sbr r16,192 ; Bit 8 und 7 setzen 128 + 64 sbis PIND,PIND5 ; Überspringe den nächsten Befehl, fals Bit 5 in PIND gesetzt ist cbr r16,128 ; Bit 8 löschen da PD5 0 ist sbis PIND,PIND4 ; Überspringe den nächsten
-
Thread
32bit*16bit=32bit Multiplikation
Hi, ich wollte Euch fragen, ob jemand von Euch schon einmal eine schnelle 32bit*16bit=32bit oder eine 24bit*16bit Multiplikation in asm (atmega) programmiert hat; irgendwie will mir das nicht so ganz gelingen... MfG, und vielen Dank, Ozzy
32bit x 16bit ergibt ein ergebnis von 48 bit...
-
Thread
DA Wandler mit Wenig bit
einstellbare Spannungen mir richtig Saft erzeugen lassen. Man nehme einen Festspannungswandler und setze dessen GND auf einen DA-Port. Ich hab das mal mit nem netten LM*** gemacht und es hat prima geklappt.
benötigt nur 2 Pins am Controller. Der Wandler bietet 8 Kanäle, hat aber leider nur eine Auflösung von 6 Bit. Gruß Markus http://www.elektronik-projekt.de/
-
Thread
2 Bit und 6 Bit zu 1 Byte zusammenführen
mit folgender Reihenfolge: PD2-PD3-PD4-PD5-PD6-PD7-PB0-PB1 natürlich könnte ich die einzelnen Bits getrennt voneinander abfragen und ggf. im Ergebnis-Byte setzen, aber so viel Zeit hab ich nicht ^^ (außerdem muss es da doch eine schönere Lösung geben) mfg, Johannes
Dafür gibt es keine wirklich schöne Lösung. Das Hauptproblem ist, dass du die Wertigkeit der Bits umgedreht haben willst (oder hast du dich nur ungeschickt ausgedrückt, da oben). Wenn PD2 als Bit7 gesetzt werden soll, bleibt nicht viel übrig außer ABfragen und Bit setzen. Wnn dem nicht so
-
Thread
PIC: Bit aus Byte an PORT ausgeben
bit 3 setzen also: IORWF h'06',1 ; setzte bit 3 xxxx x1xx in Port B Gruß Bernhard
@Bernhard einzelne Bits setzen/löschen geht so bsf PORTB,3 ; setze Bit 3 am Portb und bcf PORTB,3 ; löschen Bit 3 am Portb Reiner
-
Thread
Bit auf Bitbreite weiten
soll Bit 0 von vect auf 8 Bit vergrößert werden" uint8_t output = input & gate; Ich weiß, dass man das über eine if-Abfrage nach dem gesetzten Bit machen könnte. Ich möchte hier aber ein explizites Gate
bit-te schrieb: > Hallo, > > kann mir bitte jemand sagen, wie man in C (gcc) ein Bit eines Vektors > auf eine bestimmte Bitbreite weitet? > Sinn ist ein Bit eines Vektors zu extrahieren, dass als
-
Thread
LCD zeigt nichts an
|= (data>>(4-LCD_DB)); // Bits setzen lcd_enable(); } //////////////////////////////////////////////////////////////////////////////// // Initialisierung: muss ganz am Anfang des Programms aufgerufen werden. void lcd_init
voneinander in 2 Aktionen übertragen werden. Und genau für letzteres, das anlegen von 4 Bits an die Datenleitungen, ist diese Funktion zuständig. Jetzt zähl mal deine Bit-Setz Aktionen. Wieviele sind das? Das sind nicht 4. Das sind interesssanterweise aber auch nicht 8, wie man es bei einem
-
Thread
Einfachste USART ansteuerung funktioniert nicht.
LED dann 1 mal/Sekunde blink, ist der Takt genau 16Mhz. Kannst du mir sagen, wie ich die fuse bits genau setzen muss?
dann 1 mal/Sekunde blink, ist der Takt genau 16Mhz. > > Kannst du mir sagen, wie ich die fuse bits genau setzen muss? Liege ich in der Annahme richtig, wenn ich die Fuse Bits wie folgt setze: CKSEL = 1111 SUT = 11
-
Thread
DAC ansteuern in C
= daten << 4; dac_word |= FLAGS; // die ersten 4 bits entsprechend setzen DAC_CS = 0; spi_write( dac_word >> 8 ); // MSB spi_write( dac_word ); // LSB DAC_CS = 1; [/c]
= (1 << SCK_PIN); DDRB |= (1 << LDAC_PIN); PORT_DAC |= (1<<CS_PIN); // Chip select zu Begin setzen PORT_DAC |= (1<<LDAC_PIN); // LDAC zu Begin setzen uint8_t DAC_Wert = 0; DAC_Wert = 0; // Setzen der Status Bits DAC_Wert |= (1<<15); // Kanal B setzen DAC_Wert |= (1<<14); // Vref
-
Thread
Wozu übertrieben schnelle Microcontroller?
> warum überhaupt noch Mikroprozessoren mit weniger als 64 bit eingesetzt > werden Und demnächst sind es 256-Bit-Registerbreite, weil das besser ist um 4 LEDs blinken zu lassen.
gibt es kein PORTC Register. *portpin_set_output(PORT_C, 8);* Würde entweder PTC8 auf Output setzen oder PTC0, wenn Port C nur 8 Bits breit ist. Da die Pin-Nummer ja eine Variable ist, kann die ja im Programm parktisch den ganzen Bereich von 0 bis 255 einnehmen: [c] for(i=0;i<8;i++) portpin_set_output
-
Thread
4bit ladbarer Zähler
Hey, also ich will sowas machen, wie einen 4 bit Zähler, bei dem man anfangs einstellen kann, bei welchem Startwert er beginnen soll. Achso, muss dazu sagen, ich arbeite mit Quartus II 9.0 sp2. Ich hab dort ein Problem bei der Simulation damit. Denn
dazu: das Ergebnis soll auf nem 7-Segmenter in hex ausgegeben werden. Deswegen hat der Output nur 7 bits. Und diesen count_muxer braucht ihr glaub ich nich beachten. Der setzt einfach nur die Ausgaben auf dem 7-Segmenter.
-
Thread
4-bit miteinander vergleichen
: 15) Das Ergebnis hab ich mir am LCD-Display anzeigen lassen. Nun möchte ich am PORTD ebenfalls 4-Bit einlesen (PD0...PD3) und ebenfalls in einer 8-Bit variable (uint8_t) abspeichern. Diese beiden 8-bit Variablen möchte ich gerne miteinander vergleichen und bei Bedingung (==) einen Ausgang setzen. Das
) setze_ausgan(); [/c] Hier werden jeweils die oberen 4 Bits /ausmaskiert/ und /verglichen/, nachdem der am Port 4 eingelesene Wert /zurechtgerückt/ wurde...
-
Thread
Einzelne Bits mit WinAvr
und schreiben). Bei den WinAvr Bibliotheken habe ich so etwas nicht finden können. Einzelne Bits kann man ja folgendermaßen setzen: Registername ^= (1<<Registerbit); Registername &=~(1<<Registerbit); allerdings bin ich nicht in der lage folgende Konstruktionen mit WinAvr hin zu bekommen:
Was ich mich grad frage, was willst du damit eigentlich machen ein Bit durch ein anderes setzen? Aber die Schreibweise von dir ist mir unbekannt. Denke da musst du dir selbst was basteln wenn du es so schreiben willst. *edit* war wohl zu langsam
-
Thread
Hilfe ADC ATMEGA8
sollte, die bit zu setzen.
kann Spess das mit Sicherheit > selber) das es für externe referenzspannung ist ? wenn ich kein bit setze.
-
Thread
Mikrokontroller Ausfall nach Erschütterung
Einhart Pape schrieb im Beitrag #3734909: > Wenn irgendein Bit im Programmzähler umkippt, Und wie kann so ein Bit umkippen? Ich weiß, dass dies nach (sehr) langer Zeit passieren kann, aber warum passiert das bei Erschütterungen?
Reset auf die default werte zurückgesetzt? Nicht zurück gesetzt wird der RAM. Dazu kommen einige Bits, die von den Fuses abhängen und auf den dort eingestellten Wert setzen (CKPR/WD-Register). Undefiniert sind EEARL/H und ein paar Bits in EECR. Aber das dürfte alles uninteressant für dich sein.
-
Thread
AD Converter Timing Problems
Hm, ich weiß nicht. Auch da laufen die 14 Bit ADCs im 16 Bit Modus. Der blöde 14 Bit auf 1 Leitung Modus wie ihn dein ADC hat. Ich hab aber im Datenblatt auch nix gefunden, wie man den in einen sinnvollen modus schalten kann.
Genau, und das BitSlip darf immer nur ein Takt des DIVCLK auf High sein, dann eine Weile warten, dann erst bei Bedarf wieder genau einen Takt setzen. Einfach gesetzt lassen klappt nicht. Daher die FSM in der XAPP.
-
Thread
Pollin Display Optrex F-51154NF-FW-AA
Port=data; //4Bit Daten letzte Zeile CP=0; line++; } line=0; END: nach der letzten Zeile (line200) Load=L, Frame auf High setzen und wieder von vorn beginnen. Achtung: diese Schleifen sollen nur das Timing
hi, welche bit's haste denn setzen muessen? hast du jetzt noch nen treiber dazwischen oder alles selber .. reicht der avr denn ueberhaupt aus? gruesse mentox
-
Thread
AVR TTiny 461 Pullup nicht aktiv?
//Speicher D // Unterprogramme // ADC 1 auslesen uint8_t ADC1(void) { loop_until_bit_is_clear (ADCSRA, ADSC); // warte bis das Bit ADSC gelöscht wird ADMUX = 39; // setze den Mux auf ADC 7 ADCSRA |= (1<<ADSC); // starte die Wandlung loop_until_bit_is_clear
ADSC gelöscht wird ADMUX = 40; // setze den Mux auf ADC 8 ADCSRA |= (1<<ADSC); // starte die Wandlung loop_until_bit_is_clear (ADCSRA, ADSC); // warte bis das Bit ADSC gelöscht wird return ADCH;
-
Thread
Tastenschlagzeug mit NXP LPC 935 selber bauen
dies BRGR1 (High Byte) und BRGR0 (Low Byte). Wenn du nun 0x0170 (368dec) in das 16Bit Register BRGR schreiben willst teilst du das in zwei 8Bit Werte auf und setzt BRGR1=0x03 und BRGR0=0x68. Dein Beispielcode müsste noch um das Setzen von BRGR erweitert werden und ES=1 sowie EA=1
der main Methode ist nur eine Endlosschleife. Andersherum kannst du auch in der ISR nur ein paar Bits setzen und diese dann in der main Methode auswerten für deine Programmsteuerung. Das ist also alleine dir überlassen, wie du in einer ISR arbeitest. Ciao, Rainer
-
Thread
Pollin MOTOROLA VIP1710
Horst schrieb im Beitrag #1700464: > assende Bit setzen ohne Da es ein Flash Memory ist, kann man Bits höchstens Blockweise setzen. Das bedeutet, man muss einen größeren Bereich löschen und ihn dann neu schreiben. Ein einzelnes Bit könnte man
mal davon abgesehen, muss der Zufall schon gehörig mitspielen, um die Signaturprüfung durch das Setzen/Löschen einzelner Bits auszuhebeln.
-
Thread
Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?
/code] (B: 5-bit Befehlscode, i: Bit für indirekte Addressierung, A: 12-bit Adresse) D.h.: Wir haben immer (inklusive dem "i-bit") 6 bits Befehlscode und eine 12-bit Addresse. Typischerweise gibt es nur einen Adressierungsmodus
mit der Oder-Logik. Man muss dann zwar TTL-Logik-Bausteine setzen. (Ohne Speicher) Für das Programm INPUT, anschließend in ein Buffer legen lassen, so dass es sich der Prozessor zur rechten Zeit nehmen kann. Wenn das klappt, - dann später auch, mit 8 Bit (und
-
Thread
Ist ATXMEGA etwa out?
Und warum 8 BIT? Sind 16 oder 32 schlechter?
Ob 8, 16, 32 oder 64bit ist mir ziemlich egal, denn der C Compilier abstrahiert das sehr gut weg. Ich interessiere mich eher für die Peripherie, mit deren Programmierung ich mich auseinander setzen muss. Die ist beim Xmega
-
Thread
Arduino Compiler/Linker command line switches für ein Projekt setzen
hat. Ich bin mir sicher, dass in deutlich über 99% der Fälle, wo ein üblicher Arduinist einen 32-Bit Float nimmt, ein 32-bit Integer die Arbeit mindestens gleich gut erledigen könnte. Wenn schon beim Berechnen einer Spannung aus einem ADC-Wert der Faktor 1024.0 (oder schlimmer noch 1023.0) drin seht
> Ich bin mir sicher, dass in deutlich über 99% der Fälle, wo ein üblicher > Arduinist einen 32-Bit Float nimmt, ein 32-bit Integer die Arbeit > mindestens gleich gut erledigen könnte. Lustiger Weise ist eine Division in float auf dem AVR sogar schneller, als mit int32. Float rechnet nämlich nur
-
Thread
Mikrocontroller Software auslesen trotz gesetzter LockBits
fuer mich waere das eine RaubKopie...und die Zeichen setze ich wie es mir gefaellt...du phantasieloser ;-)
benutzen, da normale Linsen bei 350nm noch +/- 50% Transmission haben. Falls man das Lockbit setzen müsste, um den Chip lesbar zu machen (Lockbit wird gelöscht, um den Chip unleserlich zu machen), so könnte man das Lockbit eventuell auch durch den Elektronenstrahl eines SEMs setzen. Wäre eigentlich