-
Thread
RS232<->RS485 kann sich das mal einer angucken?
insgesamt 4 * 3.3k und 4 * 10k-Poti und 4 Kondensatoren): 9600 bps: C = 470 nF Timeout 1,56 ms Bit-Zeit 104,16 us 38400 bps: C = 150 nF Timeout 390 us Bit-Zeit 26,05 us 57600 bps: C = 100 nF Timeout 260 us Bit-Zeit 17,37 us 115200 bps: C = 33 nF Timeout 130 us Bit-Zeit
da war das genauso, ich konnte mir nur nie vorstellen, dass das läuft hatte immer Angst das erste bit geht verloren, da der MAx485 oder welcher auch immer erst auf senden schaltet wenn das erste bit kommt. Muss hier im Protokoll was geändert werden so erst eine bit schicken zum umschalten dann eigentliche
-
Thread
Probleme bei Lattice I2C EFB mit Wishbone Interface
State Start springe den es nicht gibt. Also State START = POR. Die Startcondition ist somit POR. Ich setze das CR (x"4A") mit I2CEN=1 (Bit 7),SDA_DEL_SEL =11 (Bit 3 + 2).
Die Startcondition setze ich im State I_CMDR, dort schreibe ich auf das Commando Register und setze Registerbit 7 (START) und 4 (Write) = x"94".
-
Thread
Steuerwerk Erklärung
Das gegebene Operationswerk aus Abbildung 1 basiert auf den vier 16-Bit Registern A, B, R und NUM, dem 4-Bit Register CNT und einer 16-Bit ALU. Sowohl die Eingänge als auch der Ausgang der ALU und Register sind 16 Bit breit. Mithilfe des Steuersignals sub kann die Subtraktion
welches das aus dem Register R im Rahmen eines durch lsrR hervorgerufenen Rechtsshifts herausgeshiftete Bit enthält, zur Verfügung. Die Steuersignale clrX (X ∈ {CNT, B , NUM}) setzen den Wert des entsprechenden Registers auf 0 und die Steuersignale incB und incCNT inkrementieren die korrespondierenden Registerwerte
-
Thread
Wie nennt man dieses Bit-Encoding Verfahren?
für die einzelnen Bits verwendet wird, da > es mir nicht geläufig ist. Aus meiner Sicht: Bescheuert - ein Bit ist ein Bit und setzt sich nicht aus 3 Bit zusammen. Vermutlich hast Du irgendetwas "fehlinterpretiert".
Hugo H. schrieb im Beitrag #6677243: > Aus meiner Sicht: Bescheuert - ein Bit ist ein Bit und setzt sich nicht > aus 3 Bit zusammen. Das nennt sich Encoding und ist die Abbildung von der Signal-Ebene in die Bit-Ebene. Normalerweise wird hier z.B. der Manchester Code, SDLC
-
Thread
C und LCD Frage.
kann: http://www.mikrocontroller.net/topic/84619#new Nur in 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
**< port for 4bit data bit 3 */ #define LCD_DATA0_PIN 4 /**< pin for 4bit data bit 0 */ #define LCD_DATA1_PIN 5 /**< pin for 4bit data bit 1 */ #define LCD_DATA2_PIN 1 /
-
Thread
Bit zu Byte in Bascom
dim variable as byte dim bit0 as bit dim bit1 as bit dim bit2 as bit dim bit3 as bit dim bit4 as bit dim bit5 as bit dim bit6 as bit dim bit7 as bit variable.0=bit0 variable.1=bit1 variable.2=bit2 variable.3=bit3
Cooooool...... Und das verbraucht dann auch wirklich nur ein Register? Und jeder Bit-Zugriff (Setzen, Löschen) benötigt dann nur einen Maschinentakt? ...
-
Thread
Wittig(welec) DSO W20xxA Open Source Firmware (Teil2) Gesperrt
eine Fernsteuerung (für RS232) eingebaut, die es u.a. erlaubt, das RAM auszulesen, Variablen zu setzen etc. Damit habe ich bspw. das Bit gefunden, das das Scope für >50MHz unbrauchbar gemacht hatte. Und momentan bin ich dabei, die Darstellungsgeschwindigkeit etwa um den Faktor 5-10 zu verbessern.
der Austauschbarkeit von Geschwindigkeit und Messgenauigkeit geben die digitalen TP-Filter ein 16 Bit Signal aus! (ungleich 16 Bit Genauigkeit). Die Trigger-Messwerterfassung ist so aufgebaut, dass Sie entweder 4*8 Bit, 2*16 Bit oder 1*32 Bit mit 1 GS/s aufnehmen kann. Leider hat sich ein kleine
-
Thread
Probleme mit GLCD von Powertip (T6963C)
// Grafik Home Adress setzen lcd_send_data(); // Auf 0200H setzen LCD_DATA = 0x02; lcd_send_data(); LCD_CMD = 0x42; lcd_send_cmd(); LCD_DATA = 0x28; // Grafik
das einfachste zum darstellen/testen? ich mache derzeit folgendes: Init: Grafikhomeadresse setzen (0x0400) Grafikarea setzen (0x1E = 30) Texthomeadresse setzen (0x0000) Textarea setzen (0x1E = 30) Mode setzen (0x81 = XOR Mode / internal CGRAM) Display Mode setzen (0x9F = Text und Grafik an
-
Thread
MCP23017 - gemischter Betrieb von LEDs und Taster
mit Pseudocode> lese den Zustand über I2C des Registers des MCP23017 zurück verknüpfe mit der neuen Bit-Maske und schreibe das Register wieder in den MCP23017. a) setzen von Bits : neuer-Zustand = alter-Zustand OR Bit-Maske b) löschen von Bits: neuer-Zustand = alter-Zustand AND not(Bit-Maske)
können. Einfacher geht das mit einem PCF8574. Die LEDs gegen VDD und die Taster gegen GND. Die LED-Bits nach Wahl invertiert (0 leuchtet) ansteuern,die Tasterbits auf 1 setzen. Beim Lesen sind die gedrückten Taster auf 0.
-
Thread
(STM32) Register Lib mit define oder nicht define..
nicht erinnern... edit: ich weiss es wieder: ich mache in meinem Code gerne kenntlich, dass ich ein Bit *nicht* setze: [c] TCCR1C = (0 << FOC1A) | (0 << FOC1B); // normal operation [/c] oder [c] TCCR1B = (0 << CS12) | (0 << CS11) | (1 << CS10); // No Prescaler [/c] vor allem wenn ich schnell
#5298783: > edit: ich weiss es wieder: ich mache in meinem Code gerne kenntlich, > dass ich ein Bit nicht setze: Dafür definiert man sich eine entsprechende Bitmaske, die den Mosus beschreibt, in dem Fall z.B. Prescaling, und die einfach 0 enthält. Etwa so: #define BLA_PRESCALING_NONE 0 Das
-
Thread
Automotive: Temperaturmessung mit PT100
misst zusätzlich den Strom und korrigierst die Widerstandsmessung damit. Ok? Aber das mit deinem 20-Bit-AD-Wandler... ich dachte, meine Lösung mit Stromquelle wäre schon aufwendig. Wobei ich 20 Bit auch für sportlich halte. Da kann ich locker 8 Bit wegwerfen von :-)
Sven P. schrieb im Beitrag #2270725: > Wobei ich 20 Bit auch für sportlich > halte. Da kann ich locker 8 Bit wegwerfen von :-) So isses. Das Leiterkartenlayout dafuer ist nicht trivial. Die meisten ADC die in uC integriert sind haben 8 .. 12 Bit. Damit
-
Thread
Eure Erfahrungen mit SD-Karten
eine Speicherzelle haben kann... Historisch zu sehen. MLC kam direkt nach SLC und steht für 2 Bits. SLC = 1 Bit pro Zelle MLC = 2 Bits, nicht mehr üblich TLC = 3 Bits, noch aktuell QLC = 4 Bits, aktuell PLC = 5 Bits, in Vorbereitung
Rainer Z. schrieb im Beitrag #7012163: > Umgekehrt. > SLC = Single Level Cell = zwei Ladezustände = 1 bit > MLC = Multi Level Cell = vier Ladezustände = 2 bit > TLC = Triple Level Cell = acht Ladezustände = 3 bit Stimmt. Und dann kommt QLC mit 4 Bit bei 16 Ladungspegeln... https://www.kingston.com/de
-
Thread
PIC Configuration Bits
Initializer kannst du vergessen, lösch ihn aus deinem Gedächtnis. es gibt zwei Möglichkeiten Config bits zu setzen. 1. Direktiven im Code 2. Über das Fenster in MPLAB. wenn direktiven im Code stehen überschreiben die beim compilieren die einstellungen des Fensters. Also nicht kombinieren.
Fensters. > Also nicht kombinieren. > entweder 1. oder 2. Genau! Meine Vorgehensweise: Config-Bits generell im Code setzten und evtl. im 'Config Bit Window' kontrollieren - aber nicht ändern! - ob die Bits so sind, wie gedacht. Speziell das Code-Protection-Bit bei den 'windowed devices' sollte man
-
Thread
MiniDisc, kennt das noch jemand oder nutzt es sogar?
recorder, von TEAC, mit dem ich recht zufrieden bin. Allerdings schafft auch der keine wirklichen 24bit, eher so 18-20bit - ist also gegenüber 16bit-Dat nun nicht gerade um Klassen besser.
Warum verwendet man im Audio Bereich eigentlich immer lineare 16 Bit ADC und nicht logarithmische mit weniger Bits?
-
Thread
unsigned long in gepackte BCD Zahl konvertieren
Ended * *Paramter: keine *Rückgabe: keine */ void init_ADC(){ ADMUX|=(1<<REFS0); //Das Bit 6 des ADMUX Registers auf 1 setzen (Interne Spannungsreferenz 5V) ADMUX&=~(1<<ADLAR)|(1<<MUX4)|(1<<MUX3)|(1<<MUX2)|(1<<MUX1)|(1<<MUX0); //Die Bit's 5 bis 0 des ADMUX Registers auf 0 setzen (ADC0
Ended * *Paramter: keine *Rückgabe: keine */ void init_ADC(){ ADMUX|=(1<<REFS0); //Das Bit 6 des ADMUX Registers auf 1 setzen (Interne Spannungsreferenz 5V) ADMUX&=~(1<<ADLAR)|(1<<MUX4)|(1<<MUX3)|(1<<MUX2)|(1<<MUX1)|(1<<MUX0); //Die Bit's 5 bis 0 des ADMUX Registers auf 0 setzen (
-
Thread
Frage zum Case Switch, bzw suche Konstrukt das nach bits schaltet
Guckst du z.B. hier: https://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer
{ printf("Funktion 3 wurde aufgerufen\n"); } int main() { uint16_t flags = 0x3; do_ifBitIsSet(flags, 1, print1); do_ifBitIsSet(flags, 2, print2); do_ifBitIsSet(flags, 3, print3); } [/c]
-
Thread
rechenzeit dot-matrix-display
stellen, und dann eine Page komplett mit Daten schreiben, ohne für jedes Byte die Adresse neu zu setzen.. > Eine Verbesserung, die weiter oben schon wer genannt hat wäre, in der > Funktion printchar() nicht einzelne Pixel zu setzen, sondern komplette > Bytes zu setzen. Halt vorher entsprechend shiften
shiften und Byte für Byte auf der richtigen Page ausgeben. Was auch Speed bringt, erst das Enable-Bit setzen, dann Daten holen und auf den Controller schreiben, dann Enable-Bit löschen. Geht bei mir mit 16MHz und KS0108 kompatiblen Controller, der nur 450ns für das Enablebit braucht.
-
Thread
I2C auf dem STM32 F411RE
„ausrechnen“ können, wohin ich welches Bit shifte und keine „hardcodierten“ GPIOA oder TIM5_1 oder was auch immer setzen ....
(I2C1->DR); } [/c] Das Programm wartet dann bis zum Sanktnimmerleinstag auf das Setzen des RxNE bit. Woran kann das liegen? Ich vermute, dass das I2C grundsätzlich funktioniert, da das Programm ja sonst nicht so weit kommen würde, oder?
-
Thread
bits in controlregister der lpt schreiben
hmmm aber meine clear/set bit funktion schreibt doch in Control rein?! und diese wird dann über ihren controlport rausgesandt... was mach ich denn da jetzt falsch (wie gehts besser?)?
Nur, falls es dir nicht aufgefallen sein sollte: Löschen des A0-Bits und senden ans LCD: cbi(LCD,A0); outp(byte,LCDP); Das ist okay. Keine Einwände. Löschen des CS-Bits: cbi(LCD,CS); Setzen von E: sbi(LCD,En); Löschen von E: cbi(LCD,En); Setzen
-
Thread
Firmwareupdate Lock-Bit ?
Dazu mußt du den Chip vorher komplett löschen, dann sind auch die Lock-Bits zurückgesetzt. Udn hinterher halt wieder neu setzen.
näheren Erläuterung: Ich will eine neue Version per ISP auf den AVR laden, trotz gesetzter Lock Bits.
-
Thread
Atmega8 vers. C - Interuptbehandlung
Eingänge an Port PD.. abfragen. Hier ist immer nur einer 'aktiv' 1 Eingang abfragen an Port PB.. 1 Bit an Port PB setzen 2 Ausgänge für die Displays im Multiplexbetrieb evtl. ein weiteres Bit aus Port B oder D um ein Disable zu setzen. Ich habe hier den Atmega 8 als Kandidat rausgesucht. Pic's mit
Eingänge an Port PD.. abfragen. Hier ist immer nur einer 'aktiv' > 1 Eingang abfragen an Port PB.. > 1 Bit an Port PB setzen > 2 Ausgänge für die Displays im Multiplexbetrieb > evtl. ein weiteres Bit aus Port B oder D um ein Disable zu setzen. Wie Falk B. schon wiederholt sagte: du hast vier Eingangssignale
-
Thread
ARM-Cortex als Anfänger?
dsPICs, warum sind die weniger beliebt als ARM? Zu sehr eigenes Süppchen. Außerdem sind es 16-bit-Controller, das war bei Markteinführung wohl schon kein großer Wurf mehr angesichts der aufkommenden ARM-Welle. Aber selbst bei 32 bit musste Microchip dann unbedingt noch auf MIPS setzen, wenn
sagen, haben wir nicht benutzt. Wir haben alles „zu Fuß“ gemacht. Viele Abhandlungen im Netz setzen nur auf irgendwelchen Layern oberhalb der Hardware auf, die wirklichen Hardware-Bits werden zuweilen nicht so detailliert erklärt. Das ist aber bei Atmel nicht anders, da bestehen die „Appnotes
-
Thread
Wittig(welec) DSO W20xxA Open Source Firmware (Teil5)
Hayo: no it's Windows 7 Starter Edition 32bit. Microprocessor inside the netbook is a N450 64bit but the operating system is only 32bit. Anyway nothing happened except I now enjoy the new firmware. Thanks. So long, 400
Hi guys, I'm sorry but I'm just a bit in hurry due to business reasons. So don't be angry for waiting for some answers. I will try to take some time on weekend to make things a little bit clearer. regards Hayo
-
Thread
AVR Ardunino Nano ATMega328P Timer OVF (Overflow) Interrupt
LOW-active LED an PD0 int main(void) { DDRD |= (1 << LED_RX); // Pin der LED_RX als Ausgang setzen PORTD |= (1 << LED_RX); // LED_RX ausschalten DDRB |= (1 << LED_L); // Pin der LED_L als Ausgang setzen PORTB &= ~(1 << LED_L); // LED_L ausschalen sei(); // globale Interrupts aktivieren
ja schon identifiziert: du setzt den falschen Int. Das mit den komischen Masken mit geshifteten Bits ist aber auch ein Kram. PICs können direkt ein Bit setzen ;) und man fällt nicht über &=, |= und ^= mit >> und << und was weiß ich noch. Und nicht vergessen: bei Überlauf deines Zählers musst du
-
Thread
Software UART
dann setzen wenn als 10. Bit eine "1" anliegt??? Viele Grüße Edgar
>Zu dem Code habe ich doch eine Frage. ... >In dem obigen Code wird das Stop-Bit nicht ausgewertet (oder ich verstehe den Code nicht). Sollte man nicht [c] srx_done = 1; // mark rx data valid [/c] >erst dann setzen wenn als 10. Bit eine "1" anliegt? Nein. Das
-
Thread
ARM Cortex M3/M4: Software-Breakpoints
Dem Hardfault ist egal ob er pushen kann oder nicht. Daher schrieb ich ja oben, dass man die SCB Bits lesbar ausgeben muss, dann sieht man auch, dass man dem Regiosterdump nicht trauen kann. Was ich in der Tat noch mal machen müsste ist den sp neu zu setzen bevor ich nach C gehe. Bisher hab ich mir
ich. Ist natürlich nur relevant bei verbundenem > Debugger. Im Grunde: Wenn Debugger connected, setze die Traps. > Funktioniert für die Faults. Die Abfrage müsstest Du Dir sparen können: "If DHCSR.C_DEBUGEN is set to 0, the processor ignores the value of this bit." Ich würde das Register evtl
-
Thread
Bits spiegeln / C
Du schiebst Bit 00000001 << 6 = 01000000 00000010 << 4 = 00100000 00000100 << 2 = 00010000 00001000 << 3 = 01000000 // soll da wirklich so sein? Wenn die Bits rechts falsch sind, dann musst du die Wert nach
wenn an der Art der Bitmanipulation in einem bestimmten Programmteil sich niemals was ändern wird. (Bit setzen, wo vorher schon eins war) Solange man sich noch nicht 100% sicher ist, was man tut, sollte man das '+' und die paar vielleicht eingesparten µs ganz schnell vergessen.
-
Thread
HC595 ansteuern in C
for (j=0;j<8;j++) { if (!(i & 1)) { PORTB = PORTB &~ bit_2; } else { PORTB = PORTB | bit_2; } PORTE = PORTE | bit_7; PORTE = PORTE &~ bit_7; i = i >> 1; } i = bei mir ein unsigned char und enthält den auszugebenden Wert.Das geht an den Dateneingang.Mit PortE | bit_7 und &~ bit_7 takte ich das Datum raus. bit_2 von PortB geht an die 14, bit:_7 von PortE ist die 11. Michael
-
Thread
mit kurzen Impulsen schalten / gegenseitig entriegeln / Attiny2313
Porteinschalten überspringen... in r1,porta ;Port einlesen, or r1,r0 ;Bit setzen out porta,r1 ;und zurückschreiben lpm r0,z+ ;Bitmuster PortB holen in r1,portb ;Port einlesen, or r1,r0 ;Bit setzen out
exti0es1 ;nein, nicht shiften, Status erhöhen und fertig... lsr shiftreg ;Bits weitershiften sbrs flags,bit ;ist Bitwert=1? - nein... sbr shiftreg,32 ;ja, Shiftbit setzen rjmp exti0es1 ;Status erhöhen und fertig... exti03: ;langen
-
Thread
Vergleich Osz R&S RTB2004 vs. Siglent SDS5034X
3607-4270-22_v1400.pdf Anscheinend kann die Bitmaske auch >4 Bytes: Wenn man das UART Byte auf 5 Bits setzt, müsste man 6 Bytes (floor(32/5)) setzen können bzw. 3 Bytes bei 9 Bit/Byte. Wenn ich die Zeit finde, probiere ich das morgen mal aus. Im Datenblatt sehe ich auch gerade, dass der CAN Decoder
Beitrag #6671029: > Anscheinend kann die Bitmaske auch >4 Bytes: Wenn man das UART Byte auf > 5 Bits setzt, müsste man 6 Bytes (floor(32/5)) setzen können bzw. 3 > Bytes bei 9 Bit/Byte. Wenn ich die Zeit finde, probiere ich das morgen > mal aus. Funktioniert.
-
Thread
Anfängerfrage: MSP430F2274
auf ein Mal! Ein Port heißt beim MSP430 immer Pa.b z.B. P1.2 für Port 1, Pin 2. Du kannst z.B. Bit 2 nur setzen, wenn du den ganzen Port neu setzt. Nachdem du ja nur einen Pin der 8 setzen willst, musst du die anderen wieder so setzen, wie sie vorher waren, also die Werigkeit des Pins zu dem aktuellen
dazuodern. Ausführlicher geschrieben passiert da Folgendes: [c] P1OUT = P1OUT | 0x04; //setze Port1.2 auf high [/c] Der Port ist binär codiert, jedes Bit hat eine Wertigkeit: Bit0 0x01 Bit1 0x02 Bit2 0x04 Bit3 0x08 Bit4 0x10 Bit5 0x20 Bit6 0x40 Bit7 0x80 Rücksetzen
-
Thread
Z180 Programmierung (Timer)
guide kann man den Ausgang (TOUT1) auch ganz abschalten. Dazu im Time Control Register (TCR) die Bits TOC0 und TOC1 auf 0 setzen. Habe ich richtig gelesen - das kann man einfach über IO-Adrese 10H beieinflussen? Dann müsste man noch das Bit TIE1 (Timer Interupt Enable) auf 1 setzen, damit ein Interrupt
guide kann man den Ausgang (TOUT1) auch ganz > abschalten. Dazu im Time Control Register (TCR) die Bits TOC0 und TOC1 > auf 0 setzen. Habe ich richtig gelesen - das kann man einfach über > IO-Adrese 10H beieinflussen? Genau. > Dann müsste man noch das Bit TIE1 (Timer Interupt Enable) auf 1 setzen
-
Thread
Lästern -> Ratespiel!!! Gesperrt
will ja durch 8 dividieren und den Rest davon übrig behalten. D.h. alles bis auf die untersten 3 Bit auf 0 setzen. Eigentlich geschieht's mir Recht :-) Da predige ich den Leuten immer und immer wieder, dass man solche Low-Level Optimierungen dem Compiler überlassen soll, d.h. schreib was du haben
+ 1 ) & 0x07; noch einen Tick besseren Code erzeugt. Liegt daran, dass der Compiler das mit 8 Bit rechnet,während er für die % Variante auf 16 Bit Arithmetik umschaltet.
-
Thread
MSP430 Programmierung in C - Doku
aus meiner Sicht fehlt dort der Unterbau. Z.B. Kapitel 5.6 Data Types. short, signed short 16 bits unsigned short 16 bits int, signed int 16 bits Dann finde ich in einem Source "uint16_t". Jetzt geht das Rätselraten los. Es handelt sich bestimmt um "unsigned short 16 bits". Aber was bedeutet
Seite 21 Deines Dokuments beschrieben. Du musst im Timeroverflowinterrupt Dich selbst um die oberen 16 Bit kümmern: [pre] Set overflow interrupt service routine to increment a global variable - 16 bit TAR_extended - which represents the upper 16 bits of a 32 bit word. [/pre] Das Konzept ist mit
-
Thread
PIC 16F690 Assembler
;Umschalten auf Bank 0 (Bit löschen) call Warten clrf PORTB ;alle LEDs ausschalten bsf PORTB,0 ;Bit 0 setzen im Port-Register Schleife call Warten
Bank 0 (Bit löschen) > call Warten > clrf PORTB ;alle LEDs ausschalten > bsf PORTB,0 ;Bit 0 setzen im Port-Register > > Schleife > call Warten ;Aufruf der
-
Thread
ATMega328, komisches Verhalten bei fast vollem Speicher
Du solltest deine Register beim Start ordentlich initialisieren. Keine Bits gezielt löschen/setzen, sondern einfach einen definierten Wert reinschreiben. Du weißt ja nicht, was vorher drin war.
Deine Nibble-Funktion löscht auch Bits vor dem Setzen kurz. Wenn D4 z.B. high war, wird es, wenn es nach dem Aufruf wieder high sein soll, kurz auf low getoggelt. Eigentlich kein Problem, aber total unschön.
-
Thread
2 Byte bei 12 Bit ADC mit SPI
der häufigste Fehler beim Auslesen von SPI Peripherie mit mehr als 8 Bit besteht darin das nicht weiter getaktet wird. SPI macht einen Lesezyklus mit 8 Bit also solltest Du 8 weitere "irrelevante" ausgeben um dem Slave weitere 8 Takte zu spendieren. Dann wird er auch was
natürlich sollte man zwischen den beiden TX Dummy Bytes des SPI keinen Breakpoint für's debuggen setzen! ;-)
-
Thread
AVR Videogenerator, 40x25 Zeichen, nur 60% CPU Auslastung !
Jungs, macht doch das SPI zu Fuß ... dann könnt Ihr die Zeichen ausgeben wie Ihr wollt. 4 Bit , 8 Bit , 9 Bit oder 21 Bit. So schwer isses ja nich
von TIMER1 zu definieren. Das scheint mir aber gar nicht (mehr) nötig, weil allein schon durch das Setzen von WGM13-WGM10 = 0111 der TOP-Wert auf 0x03ff gesetzt wird. (10-Bit PWM) Ich will das ICR für einen anderen Zweck nutzen, das kann ich dann doch wohl machen, oder? Danke schon einmal für die
-
Thread
allgemeine PicoMite Anfängerfragen
7-Bit Addressing The standard addresses used in these commands are 7-bit addresses (without the read/write bit). MMBasic will add the read/write bit and manipulate it accordingly during transfers. Some
schreibt, ungerade Adresse liest. Wie macht das PicoMite? Übergebe ich bei I2C read/write eine 8-Bit Adresse und PicoMite ändert Bit 0 entsprechend Lesen/Schreiben, oder ich übergebe eine 7-Bit-Adresse, PicoMite hängt Bit 0 dran (und verschiebt damit alle Bits 1 nach links)?
-
Thread
Brown out Detection Fuses im Code setzen
Hallo, folgende Frage: Ist es möglich die Brown out Fuses und das Detection Level im Code zu setzten / löschen oder funktioniert das nur über den Programmer? Würde das gern im Programm machen, weil ich dann nicht jedes Mal das Gerät öffenen muss und man das dann auch im Feld mal ändern könnte. Controller ist ein ATXMEGA128A3. Danke und Grüße, Alex
-
Thread
pwm formel 16 bit timer verständnisproblem
Ich habe eine Frage bezüglich der Formel für eine korrekte PWM Einstellung beim AT162. Mit dem 16 Bit Timer3 - PWM Modus 14 -fast PWM ~>Ziel: Mein TOP herausfinden -> Formel lösen: ----------------------------------------------- Frequenz_des_PWMs = (Prozessorfrequenz) / (PRESCALER * (1+TOP))
~>Meine Berechnung für TOP *Wenn ich eine Frequenz von 500 Hz als PWM haben möchte, dann setze 500 Hz in meine Formel ein. *Mein Prozessor ist 8 MHz schnell. Setze ich auch ein. *Mein Prescaler soll 8 sein. Setze ich auch ein --> 500 Hz = (8MHz) / (8 * (1+TOP)) +++++++++++++
-
Thread
neues FPGA buch: "FPGA für alle"
process; count <= counter_reg; end Behavioral; [/code] An ChatGPT: "Mache daraus einen 5Bit Zähler" ==> Um den 4-Bit-Zähler in ein 5-Bit-Modell umzuwandeln, können Sie einfach die Größe des counter_reg-Signals auf 5 Bits ändern und den Ausgang entsprechend anpassen. Hier ist der aktualisierte
Prozessor arbeitete intern mit 16-Bit-Datenworten (14 Bit Daten, 1 Überlaufbit und 1 Vorzeichenbit (Einerkomplement)). Bei der Verwendung als Programmbefehl waren 3 Bit für den Opcode und 12 Bit für die Adresse reserviert.
-
Thread
LCD im 4-Bit Modus an nur einem Port betreiben
Code fällt mir auf, daß so etwas dort eigentlich garnichts zu suchen hat: #define E_H P6OUT |= BIT6; #define E_L P6OUT &= ~BIT6; #define RW_H P6OUT |= BIT5; #define RW_L P6OUT &= ~BIT5; #define RS_H P6OUT |= BIT4; #define RS_L P6OUT &= ~BIT4; Also mache es anders, nämlich so, daß
ist die "Konstante" in der Spezifikation. Jetzt käme einer auf die Idee und meinte, wenn Portbit Bit4 bis Bit7 genommen würden, wäre das schon gelungen. Genauso kann ich alles beliebig setzen an Portbits am µC, Hauptsache es korrespondiert mit dem tatsächlich verwendeten Pinout sowohl des LCD als auch
-
Thread
Terminal 9Bit
nur ist das sehr sehr umständlich und vor allem wird dadurch alles ziemlich lahm, wenn man das 9. Bit auch synchron zum Rest halten will
das Paritybit. 9 Datenbits plus Parity sind unmöglich. Da wird nix verzichtet, Mark oder Space setzen das Paritybit auf eben Mark oder Space. Das ist das Paritybit.
-
Thread
Timer für C505 setzen
das Manual lässt zuviele Fragen offen)? Konkret geht es um die Ansteurung (Ports?) und Startwerte setzen. Vielen Dank, Raphael
Hi Peter, ich möchte den Timer0 in Mode 1 (16bit) betreiben und auf den Startwert 0xF13B (61755) setzen. Ich wühl mich mal durchs Manual ... Raphael
-
Thread
Probleme mit einem Programm In C für PIC 12F629
watschdog (); // Aufruf vom Wachdog um ihn zurück zu setzen while (TMR0); ms--; } } //********Unterbrogramm Zeitschleife Sekunde***** void pause(bit licht_1,bit licht_2,bit licht_3,bit licht
Sekunde***** void pause(bit licht_1,bit licht_2,bit licht_3,bit licht_4,bit licht_5 ) { Led_1 = licht_1; // Led_1 wird eingeschaltet und ist solange ein bis zur nächsten Schleife Led_2 = licht_2;
-
Thread
Neue 8-Bit Tinys vorgestellt: 417/814/816/817 Gesperrt
neuen teuren Programmer/Debugger zu benötigen Wäre ja mal ein Grund für diese "Bastler" sich 8-Bit Alternativen anzusehen, für die es keinen Programmer braucht, und das Debugging schon ewig über SWD geht: http://www.silabs.com/products/mcu/8-bit/Pages/8-bit-microcontrollers.aspx
M. K. schrieb im Beitrag #4786140: > Ein 12 bit Timer...das ist ja mal was ganz was neues... > Ja, zusätzlich zu den zwei 16-Bit Timern. Ein 12-Bit *ADC* hätte mich gefreut. Bernd_Stein
-
Thread
Problem mit ADC Auto-Trigger interrupt
des Timer 0 zur PWM-Generierung: [c]void PWM_init(void) { // Form generation mode using WGM bits and Compare output mode using COM bits. Phase correct Mode 1 TCCR0A |= (1<<WGM00) | (1<<COM0A1) | (1<<COM0B1); // Set the Clock select bits to determine Clock frequency. Prescaler = 1 TCCR0B
nimmst du das TIFR0 0b01001110 und setzt alle Bits auf 0 bei denen hier 0b11001110 ein 1 Bit ist Was kommt raus? 0b00000000 Ähm.Da ist ein bischen mehr auf 0 gegangen. Nicht nur Bit 7. Das sind keine
-
Thread
Interrupts vs. Endlosschleife
ADC-Interrupt: Messwerte einlesen und sichern, nächste Messquelle einschalten, evtl. Jobflag setzen (wird vom ADC ausgelöst, wenn er fertig ist) - andere Interrupts (RX, Ext, Pinchange...): Daten sichern, falls erforderlich, Jobflag für Mainloop setzen, dadurch ISR sehr kurz halten
die Befehle zur SREG-Manipulation. Man kann einunddasselbe Ding unterschiedlich nennen. ;-) Die Bits im Register "flags" müssen ja nicht nur ausgewertet werden, sondern auch gesetzt und gelöscht. Das Setzen geschieht meinst in einer ISR, da muss es schnell gehen, deshalb bevorzuge ich obere Register
-
Thread
Zählermit Einstellmöglichkeiten
Servus, ich habe mir einen Zähler gemacht mit 30 Bit Breite, der außer dem reinen Zählen noch folgende Funktionen hat: - enable-Signal - updown ('1' = up) - clr (alles auf 0 setzen) - maximale Adresse, bis zu der der Counter läuft, 30 Bit -
clr auf 0 setzen http://www.mikrocontroller.net/topic/119580#1083267