-
Thread
dsPIC30F6014 using 2 CAN-Module
Wie verhält sich das mit dem TXREQ Bit? Wenn ich das setze, dann sende ich die nachricht. ist der buffer leer, dann wird das bit automatisch gecleared? weil request ist doch die anfrage/anforderung, dann muss ich doch eigentlich aus
Transmission nachfolgend zwei Auszüge daraus: Tom wrote: > Wie verhält sich das mit dem TXREQ Bit? > "To initiate transmitting the message, the TXREQ bit (CiTXnCON<3>) must be set" > Wenn ich das setze, dann sende ich die nachricht. ist der buffer leer, > dann wird das bit automatisch gecleared
-
Thread
DAC AD7808 wie register setzen
so gelesen zu haben) andere Register setzen damit der DAC "versteht" was er machen soll. (MD0 MD1 usw.) Habe natürlich die Programmbeispiele im Datenblatt gefunden, leider bin ich zu neu in der Materie um das auf mein Problem umsetzen zu können
Wiso soll er sich mit I2C auseinander setzen? Der DAC hat SPI...
-
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
AVR Studio Fuses/Wert direkt setzen
unter anderen muss ich auch das SPI EN Bit setzen. Das ist nur ausgegraut... Warum ist das so? Hängt das wieder mit einem weiteren Bit zusammen? Gruß, T.
Welchen Programmer müsste ich nehmen um einen Attiny45 nicht über SPI zu programmieren um dieses Bit entsprechend zu verändern? Gruß, T.
-
Thread
LCD Uhr mit Alarmfunktion mit Drehencoder in BASCOM (Ein kleines Projekt für BASCOM Änfänger Vol3)
1000 mal aufgerufen ist eine Sekunde rum, also Variable in der ISR hochzählen bis 1000 und dann ein Bit setzen.
auch noch nicht gebraucht. Zum Auslösen eines Compare-Interrupts werden sie glaube nicht gebraucht. Setzen wir sie auf 00. Der bisherige Steuerwert für TCCR1A ist also: &b000000xx Es folgen Bit 1: WGM11 und Bit 0: WGM10. Hier ist ein Stolperstein, denn diese beiden Bits sind nur die halbe Miete
-
Thread
Richtiges C++ hardwarenah
worden. Wenn es um Hardware geht, ist die Frage: plain C oder C++ *absolut* *irrelevant*. Einzelne bits setzen, Register mit irgendwelchen Werten laden usw. ist bestimmt nicht das, wofür C++ geschrieben wurde. Also wird C++ bestenfalls genau dasselbe compilieren wie plain C. Damit ist die Frage
einfacher gestalten sollen- aber es in Summe doch nur verkomplizieren und Einstiegshürden immer höher setzen. Oder laß es mich so formulieren: Dicke und immer dickere C++ Bücher (Aufwand) stehen in keiner Relation mehr zum Ergebnis. Jedenfalls was eine typische 8-Bit Controllerschaltung mit überschaubarer
-
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
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
LCD und lesen des AC
auch, jedoch tritt hierbei ein merkwürdiges Phänomen auf, dass ich mir nicht eklären kann. Das DB6 bit ist IMMER HIGH, egal wo der Cursor gerade steht. Sprich, setze ich den Cursor an die Position 0x05, und lese ihn gleich wieder aus bekomme ich den wert 0b01000101 zurück. Gibt es hierfür eine logische
Naja, um das Kommando zur Abfrage der Adresse zu schicken, fummelst du an dieser Stelle mit den Bits und Ports des LCD rum. Für jedes andere Kommando (Adresse setzen, Cursor löschen...) müsstest du das dort jeweils wieder machen. Das ist doch ungeschickt: - an jeder dieser vielen Stellen steht
-
Thread
Buderus EMS-"Gateway" mit PIC18F / Sammelbestellung
ein Wert ist der gesetzt werden soll. Die drei Modes sind im selben Byte nur ein unterschiedliches Bit (Bit1, Bit2, Bit3) Den aktuellen Modus kann man mit 0B 90 3D 04 01 <Prüfsumme> abfragen Oder das Telegramm 3d ab Offset 00: 0B 90 3D 00 <Prüfsumme> Habe es selber noch nicht ausprobiert.
besten über Interrupt auf empfangene Daten reagieren. Wenn ein Break empfangen wurde ist das FERR-Bit in RCSTA gesetzt. Wenn mehrere Bytes im Buffer waren kann man nicht erkennen welches Bytes das Break war (gelöschtes STOP-Bit) Nach FERR-Bit wird wieder gelöscht nachdem man das Empfangsregister
-
Thread
Warum gibt es kein Bit-Array in C?
[c] .... struct __attribute__((packed)) // oder was Dein Compiler hier möchte { uint8_t bit0 : 1; uint8_t bit1 : 1; uint8_t bit2 : 1; uint8_t bit3 : 1; uint8_t bit4 : 1; uint8_t bit5 : 1; uint8_t bit6 : 1; uint8_t bit7 : 1; } bytes[10]; int main (void) { bytes[0].bit0 =
repräsentiert. Schreibt man in der bitbanding area eine 0 in ein word, wird das correspondierende Bit auf 0 gesetzt, sonst auf 1. Vorteile: Zugriff per uint32_t array[] möglich ohne eine neue Type einzuführen. Zugriff ist atomic für setzen und löschen eines Bits. Zugriff erfordert keine bitshift
-
Thread
Tiny fuses setzen (15 Zeichen sind Pflicht aber hier unnötig)
ich dache weil in dem Bild fast alle Hacken drin sind muss, ich die im AVR Studio auch alle setzen.... Gibt es im avr t ne Möglichkeit firmware und fuses auslesen zu lassen, damit ich gucken kann ob beim programmieren alles geklappt hat?
ich bei dem Punkt dann auch gekommen nur um dann zu wissen welche bits im twinavr welcher Beschreibung im avr studio entsprechen hat es bei mir nicht gereicht Danke für die Antwort
-
Thread
Neues Terminal-Programm für Windows
Tobi, ein super Tool, DANKE! Frage: Warum erfolgt die Trennung bei der DEC-Eingabe nicht bei 8 bit?
Danke für die schnelle Antowort! Es sendet nur selten... das mit den Stopp-Bits konnte ich auch nicht glauben, steht aber im (zugegeben schlechten) Manual drinne...kann aber auch sein, dass sie 1 Stopp-Bit und 0 zusätzliche Stopp-Bits meinen... Aber nach der Reparatur sendet
-
Thread
C Programcode für Motorsteurung
wunderbar mit eigenem Spannungsversorgung, nun habe ich eine Code geschrieben um PWM als Ausgang PIN zu setzen, allerdings weiß ich nicht welche Bits ich auf 1 setzen soll. #include <avr/io.h> #include <avr/interrupt.h> #include <inttypes.h> #include <stdbool.h> #include <avr/pgmspace.h> #define F_CPU
> allerdings weiß ich nicht welche Bits ich auf 1 setzen soll. Wo willst du ein Bit auf 1 Setzen, warum und welcher Pin ist denn der gewünschte PWM Ausgang?
-
Thread
PIC18 connected to RN42
durch eine [c]if(PIR1bits.RCIF&&PIE1bits.RCIE) { ... }[/c] ersetzen und das return RCREG; auch rausschmeißen. Peb schrieb im Beitrag #3839556: > Sobald ich RCIE auf "1" setz... kann die RCIF flag nicht mehr gesetzt
Seit ich das "Wake-Up-Bit" auf 0 gesetzt hab ... Kann ich die RCIF nicht mehr setzen.
-
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
5 zeilen C code
ist es schneller wenn du 3 while Schleifen hast und du somit nur ein if und kein else hast. Das setzen des Bits ist soweit richtig, du kannst das so machen und musst nicht Toggeln.
immernoch an den Problem von oben. Anstatt einer IF abfrage kann ich doch perm. den Zustand vom Eingang setzen so etwa: bool r ; while(1) { r = P6IN & BIT0; // 6.0 eingang P5OUT = r & BIT1; // 5.1 ausgang } was ist daran falsch ?
-
Thread
Assembler oder C
Bytes mehr rein? Jörg Wunsch schrieb im Beitrag #2180587: > UCSR0A = (1 << MPCM0) /* | andere Bits hier, die du setzen willst */; Das ist eben was völlig anderes. Ich will ja nicht irgendwelche Bits setzen, sondern nur eins ändern. Der Rest soll so bleiben. Also: erstmal einlesen, dann ändern,
nicht drauf zu. > Jörg Wunsch schrieb im Beitrag #2180587: >> UCSR0A = (1 << MPCM0) /* | andere Bits hier, die du setzen willst */; > > Das ist eben was völlig anderes. Ich will ja nicht irgendwelche Bits > setzen, sondern nur eins ändern. Der Rest soll so bleiben. Du hast es nach wie vor nicht
-
Thread
Eigene CPU: Architektur?
>16-Bit Opcode, bestehends aus 5 Bit Opcode und 8 Bit Wert/Adresse. 5+8=13 ;-)
Nur um die Sammlung der CPUs etwas zu erweitern.. Hier gibt es die Bauanleitung für eine 1-Bit CPU: http://laughtonelectronics.com/Arcana/One-bit%20computer/One-bit%20computer.html
-
Thread
UART 9 Bit Modus
UCSR0C |= ( 1 << UCSZ02 ) | ( 1 << UCSZ01 ) | ( 1 << UCSZ00 ); // 9n1 for doing [/c] Diese Bits sind nicht alle in einem Register.
Jetzt bleibt nur noch die Frage, warum muss ich zum Aktivieren des TX-Interrupts immer ein UDR0 = 0 setzen? Danke und Gruß Frank
-
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
ARM: kompliziert?
32Bitter, wow. Das Atomic-Problem fällt einem auch hier auf die Füße. Man hat SFRs für einen 16Bit-Port setzen oder nur einen Pin. Zusätzlich kann man auch ein Maske setzen, um Outputs zu schützen. D.h. ein Interrupt kann Pins ändern, und diese Änderungen kann man schützen, auch wenn der Interrupt
für die man per Befehlssatz schon hochkomplexe Bitfeld-Befehle benötigen würde. Wenn man mehrere Bits eines Ports, aber nicht alle, gleichzeitig auf einen beliebigen Wert setzen will.
-
Thread
AVR GPIOR Bit Verwaltung C++
trotzdem stehen im Binär-File nur die minimal notwendigen Maschinenbefehle. Nie mehr die falschen Bits im falschen Register auf einen ungültigen Wert setzen. > Ein sinnvolles Objekt wäre z.B. ein Display-Objekt, das eine Handvoll > IO-Pins beinhaltet und vor allem auch von diesen gleich abstrahiert
> gp0::set<1>(); ist mir ehrlich gesagt zu kryptisch ... kannst ja ein [c] gpior0::setBit<1>(); [/c] oder [c] gpior0::set(Bit1); [/c] oder, oder oder ... draus machen. > Was machen die beiden Funktionen setzen die jetzt einen ganzen Port auf > 1 oder 0 oder doch nur beide
-
Thread
1 Bit ändern?
Hy wie kann ich in C nur 1 Bit ändern ohne die anderen zu verändern? z.B.: aus 0b00010001 soll 0b00000001 will hier das 4.Bit von 0 auf 1 setzen... klar ich kann i=0x01 zuweisen aber dann werden alle anderen auch
-0 oder? WAS MACHT DAS ENTSCHLÜSSELT? i &= ~(1<<4); wofür ist die Negation? heißt die 1 setze auf 1? die 4 steht für die 4 Stelle?
-
Thread
Grafikfähiger LCD Controller für 320x240 LCD mit 4 Graustufen
Dieser Code dürfte (sofern ich jetzt keinen Denkfehler drin habe) auch schneller arbeiten als jedes Bit per "setpixel" zu setzen.. Danke vielmals ;) - Tobi P.S: Mir fällt gerade auf, das es wenn ich aus dem externen RAM auch lese eventuell zu Fehlern kommen könnte.. Spielt das eine Rolle? Ich
krigt man immernoch schönes Schwarz und Weiß hin. Würde man das LSB einfach Null setzen wäre das ja nicht mehr gegeben. Die Grafik und Textfunktionen sollten alle laufen wie Gewohnt. Für die Farben (auch Text- und Hintergrundfarbe) sind jetzt aber die obersten DREI bit relevant, sodass
-
Thread
Signalerkennung
einzeln abfragen muss. Man kann auch den kompletten PINB hernehmen und alle nicht interessierenden Bits wegmaskieren (gezielt auf 0 setzen). Dann bleiben Zahlen (weil es ja 3 Bits sind) im Bereich 0 bis 7 übrig (weil die Pins die Bits 0 bis 2 sind). Und jede dieser Zahlen ist spezifisch für eine ganz
/ Port B, Pin 0 auf High (5 V) setzen, LED an } if ( bit_is_set ( PINC,2 ) ) // Taster gelöst, 5 V wieder über Pull-Up an C2, HIGH { PORTB = 0b00000000; // Port B, Pin 0 auf LOW (0 V) setzen, LED aus
-
Thread
Timer PWM nach manuellem Setzen des Ausgangs
COM0A1 und COM0A0 auf NULL dann ist dein OCXX entkoppelt für PWM dann entsprechend wieder setzen.
Singleton) und meiner Schleife (wird jede Sekunde einmal durchlaufen) [c] TPWM::TPWM() { // 16 Bit Fast PWM TCCR3A = 0x82; TCCR4A = 0x82; // stop timer TCCR3B = 0; TCCR4B = 0; // TOP for PWM, full 16 Bit ICR3 = 0xFFFF; ICR4 = 0xFFFF; SetProp(P1, 5); SetProp(P2, 6);
-
Thread
Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?
}, };[/c] Komprimieren oder nicht komprimieren? Also statt "uint8_t hourOffset" einfach ein Bit im ersten Index setzen?
Diskussion* zum Artikel, siehe Link im Quelltext. Diese Formel fand ich damals wesentlich logischer und setze sie auch in mehreren Projekten ein - bei 12-Bit-PWMs.
-
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
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
RFM12 - Funkmodul
alles kein Problem. Das Empfangen scheint so zu funktionieren: FIFO einschalten, FIFO fill enable bit setzen, jetzt wartet das Modul auf das das Sync Word, (falls dieses eingeschaltet ist) und zeichnet danach alles mit der Bitrate auf. Egal ob was sinnvoles kommt oder nicht. Ist die Übertragung also
Wegen der Übertragungssicherheit würde ich an den 7,4 Hamming-Code noch ein Paritätsbit setzen, dann hat man einen 8,4 Hamming-Code und die vollen acht Bit einer Übertragung genutzt ;-) Infos dazu z.B. hier http://en.wikipedia.org/wiki/Hamming_code http://de.wikipedia.org/wiki/Hamming-Code
-
Thread
Propeller Clock
Bits setzen (gelöscht wird nach ;Abarbeitung) ;in "tas" steht jetzt der gültige Tastenzustand, ;in "tfl" die Flags der neu gedrückten, noch nicht abgearbeiteten ;Tasten... ;xl ist
Programmen (in ASM) gibt es grundsätzlich ein (oberes) Register namens "flags", in dem ich einzelne Bits für spezielle Zwecke reserviert habe. Von C habe ich Null Ahnung, aber das könnten Variablen vom Typ Boolean sein. In der ISR setze ich das betreffende Bit: sbr flags,1<<start In der Mainloop überprüfe
-
Thread
Zähler bei Überlauf auf 0 setzen
Zähler zu erzeugen. Der soll auf 0 gesetzt werden, sobald er einen Wert x erreicht hat. Wo genau setze ich den Zähler zurück? Ich sehe mehrere Möglichkeiten, weiß aber nicht, welche schön und welche hässlich ist: [pre]1) TimeIt: process(Reset, Clock, Timer) begin if (Reset ='1'
integer nimmst ohne den Wertebereich einzuschränken, macht die Synthese daraus wahrscheinlich ein 32-Bit breites Register, was sehr schnell die Ressourcen aufbrauchen kann. Bei unsigned kannst du im Prinzip genausorechnen, wie mit Integer, da die Rechenoperationen überladen sind. Unsigned ist eigentlich
-
Thread
keine Fusebits setzen in AVRStudio4.14?
wenig möglich wie in der alten Version, im Gegenteil, es ist noch schlechter geworden. Also, ich setze z.B. SUT_CKSEL auf ext Crystal - irgenwelche Frequenz und nacheinander verschiedene Startup-times und Delays. Einziger Erfolg: Der Atmega arbeitet nicht mehr - kenntlich an LED's, die auf eine bestimmte
Ich benutz immer Ponnyprog, das funktioniert einwandfrei. Was funktioniert nicht das setzen der Fuse Bits oder hast du versehentlich die falschen Einstellungen gemacht?
-
Thread
Atmega32 - PortPin geht nicht auf High wenn Pullup gesetzt
Beitrag #7857531: > PORTB |= (1<<PB0); // Pull Up an Pin0 - aktivieren Warum schreibst du das setzen der DDR-Bits nicht im selben Stil? Das wäre auffällig und deutlich weniger fehleranfällig.
Ich find binär lesbarer als hex. Finde ich bei den Pin-Konfigurationen auch, wenn man nicht jedes Bit einzeln setzen will. Aber dann muss man den Stil auch durchhalten, sonst wird's unübersichtlich.
-
Thread
Arduino Nano Timer1 capture und overflow interrupt
Counter1, Overflow Interrupt Enable Sind diese Schreibweisen so korrekt ? TCCR1B &= ~(1<<ICES1) -> Bit setzen für fallende flanke TCCR1B |= (1<<ICES1) -> Bit setzen für steigende flanke TIMSK1 &= ~(1<<TOIE1) -> Bit setzen für Deaktivierung overflow Interrupt TIMSK1 &= ~(1<<ICIE1) -> Bit setzen für Deaktivierung Capture Interrupt TIMSK1 |= (1<<TOIE1) -> Bit setzen für Aktivierung overflow Interrupt TIMSK1 |= (1<<ICIE1) -> Bit setzen für Aktivierung Capture Interrupt Vielen Dank vorab.
-
Thread
Problem mit Ansteuerung MAX7221
Hallo, ich denke dein Problem ist du übergibst nur 8 Bit und setzt dann LOAD wieder auf High. Das Verfahren ist folgendes: 1. LOAD auf Low schalten 2. 8 Bit für die Registeradressierung reintakten 3. 8 Bit für das Datum reintakten 4. LOAD auf High
Ähm, ich sende übrigens 16Bit, nicht nur 8, und der CS bleibt low während der ganzen Zeit void spiSendByte(unsigned char op,unsigned char val) { P2OUT &= 0xFD; // Setze Chip Select 74HCT244 low CS_LOW(); /
-
Thread
ATtiny 25 zurück setzen
Hallo an die Speziallisten. Ich habe da einen ATtiny 25. Der lässt sich mit dem Pony Programm gut beschreiben. Da ich das Programm nicht ans laufen bekam habe ich die 8 bits invertiert gesetzt. Ich habe die Angaben im Datenblatt falsch interpretiert. Jetzt bekomme ich keinen Zugriff mehr auf die Chips. Gibt es eine Möglichkeit den Controller wider in den Auslieferungszustand zurück zu setzten? Grüß Wendy
-
Thread
Eclipse Plugin für Fujitsu 16bit µcs Gesperrt
und FX (MB96F346) getestet. Einige Hinweise: -FETOOL=C:\Programme\Softune in Environment Table setzen -INC907=C:\Programme\Softune\lib\907\include in Environment Table setzen -*.ASM and *.C Files werden, falls gross geschrieben nicht erkannt. -Makros für die CPU Definition setzen z.B. __CPU_MB96F346
Hi, > Wir arbeiten mit dem 32bit Prozessor und wollten schauen wie komplex es > ist sowas für Eclipse zu bauen. Nun gibts das für 16bit und die > Anpassung an 32bit dürfte nicht so schwer sein. Die reine Toolchain-Anbindung ist
-
Thread
Compare Match Interrupt Pins high und low setzen
Ja, so in etwa. Wenn du allerdings die COM bits löscht, dann wird wieder das Port register dominant. Es gibt mehrere Lösungen für das Problem: Wenn du die COM bits löscht, dann musst du das Port Register auf den gewünschten Wert setzen. Möglichst
mehr auftreten. Wenn es dich nicht stört, dass weitere OCs auftreten du aber möchtest, dass das bit dabei gesetzt bleibt kannst du auch einfach die COM bits so konfigurieren, dass sie das bit immer weiter setzen. Dann findet auch keine weitere Änderung mehr statt. Thor
-
Thread
Wittig(welec) DSO W20xxA Open Source Firmware (Teil4) Gesperrt
U5 wird vom obersten Hex-Digit des Registerwerts serdata->np_piodata eingestellt, genau genommen Bits 22:20. Die Länge des Schiebetransfers ist entweder immer 24 Bit, oder (was ich nicht hoffen will) von den Bits 22:20 abhängig. Die DACs brauchen 24 Bit, die Schieberegisterketten 8 oder 16. Um das
jeweilige Empfangskette, nicht generisch. Die Anzahl der erzeugten Bitclocks ist genau passend, 8 Bit für Chip Selects mit einem Schieberegister, 16 Bit für Chip Selects mit zwei Schieberegistern, 24 Bit für die DAC-Chipselects. Für letzere wird Enable während der Bits gehalten, für die Schieberegister
-
Thread
4 Bit Synchronzähler
0 0 0 1 | 0 0 1 0 usw... 1 1 1 1 | 0 0 0 0 Das währe ein normaler 4-Bit Zähler, vielleicht hilft das weiter. Ob das ein Synchronzählers ist oder nicht kann man nicht aus der Zustanstabelle erkennen
Einen normalen 4-Bit Zähler bekomme ich ja hin, ab wie ich es hinbekomme das der zähler bei 5 beginnt und nach 2 wieder zurückgesetzt wird, das ist mein großes Problem. mfg David
-
Thread
Attiny 841 und PRR
Paul schrieb im Beitrag #6002536: > Im Bit 0 steht "Inital Vlue PRADC = 0". > Muss ich das Bit trotzdem auf 0 setzen? Nö, steht doch da. Wenn als Startwert nach Reset da schon eine Null steht, braucht man da nix zu nullen.
richtige Antwort lautet wie immer: Kommt drauf an. Das gleichzeitige setzen oder löschen mehrerer Bits in einem Register resultiert immer in eine "read-modify-write"-Sequenz. Das setzen oder löschen eines einzelnen Bits resultiert, je nach dem, an welcher Adresse das Register
-
Thread
"NUCLEO"-Borads von GigaDevice
verhält sich genau so wie man es erwarten würde: Löschen: FMC freischalten mit dem Unlock-key, PER bit setzen, adresse setzen, START bit setzen auf BUSY bit warten, LK Bit wieder setzen. Schreiben: FMC freischalten mit dem Unlock-key, PG-Bit setzen, Daten ganz normal an die Adresse schreiben (auch 32-Bit zugriff ist erlaubt, jetzt ist mir auch klar warum, ist ja ganz normales RAM!), BUSY bit warten, nächstes Wort schreiben oder LK Bit wieder setzen. Die Adressen sind ganz normal entweder ab 0x0 oder
-
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
-
Thread
4 Bit Vergleicher
irgendjemand erklären, was genau in welche Zeile eigentlich passieren soll? A ist mein Eingang mit 4 Bits. Ich verstehe das Programm so: Ich schreibe zuerst in meine Variable sum die Zahl null. Da die Variable 16 bit groß ist, habe ich 16 mal die null. Dann öffne ich eine Schleife mit der Variblen i. Danach
> type int16 is range 0 to 15; Matze1992 schrieb im Beitrag #3406803: > Da die Variable 16 > bit groß ist, habe ich 16 mal die null. Das ist leider falsch. Die Variable ist nicht 16 bit groß, sie kann nur 16 verschiedene Zustände speichern. Das bedeutet, es sind log(16)bit=4 bit. Im Übrigen
-
Thread
PCF8575 Ausgänge setzen
ich einen PCF8575, dessen Ausgänge gehen direkt auf einen Logikbaustein. Problem dabei ist, das setzen der PCF8575 Ausgänge funktioniert irgendwie nicht?! Lesen geht ohne Probleme. Verwende ich einen PCF8574 anstatt des PCF8575 funktioniert das setzen der Ausgänge tatdelos... Nun meine Frage, kann
Siehe [[Port-Expander PCF8574]], der PCF8575 ist praktisch genaus so, nur halt mit 16 Bit. MFG Falk
-
Thread
vergleich der inputs am bort (8Bit)
cnt with starting values void External_ISR()org 0x0003 ilevel 0 { // Interrupt rutine EA_bit = 0; // Disable all Interrupts tmp = 1; // Set variable tmp EA_bit = 1; // Enable all Interrupts }
Karl Heinz schrieb im Beitrag #3976294: > dass ich P1 auf Ausgang > setze Das gibt es bei den OC-Pins eines 8051 garnicht. Georg
-
Thread
Wert der Variable als Ausgang setzen
Hallo zusammen. Ich habe eine Variable von 0 bis 9. Diesen Wert soll es mir auf einer 7Segmentanzeige darstellen. zwischen Anzeige und µC habe ich einen Anzeigetreiber(CD4511). Durch ein Signal am µC erhöht sich diese Variable immer um 1. Wie also kann ich das jetzt am besten schreiben.? PORTD|= variablexyz ... geht leider nicht so einfach.:D bitte um hilfe. es geht um einen Tischkicker.!!! (Der automatisiert werden soll) danke ;)
-
Thread
erstes ASM Programm.wo ist der Fehler?
gesetzt. Wie jetzt, das versteh ich nicht. Ich dachte mit LDI R16, 0xFF OUT PORTD,R16 setz ich die Ausgänge auf HIGH? >Du must natürlich keine 8 Bit hinschreiben aber es macht es für mich und >andere leichter lesbar. Okay, merk ich mir.
;Pullups für die Eingänge 3-0 aktiviert[/c] um alle Pullups auszuschalten kann man auch das PUD-Bit im SFIO-Register setzen