-
Thread
Assemblerprogrammierung: Bank switching vs. Segment:Offset Adressierung
die Transistoranzahl pro CPU reduzieren. Und wie macht man das? Ganz einfach, man fertigt nur 8 Bit und 16 Bit CPUs, anstatt 32 Bit CPU. Eine 16 Bit CPU hat nur halb so breite Register wie eine 32 Bit CPU. Um nur ein einziges Bit zu speichern, braucht man mehrere Transistoren. Bei 16 Bit weniger
von NT, ein reines 32-Bit System zu schaffen, halte ich für wesentlich besser. Zum Problem kommt es nämlich, wenn 16-Bit Komponenten auf Speicher zugreifen sollen, der zu einer 32-Bit Anwendung gehört. Dann wird's schrecklich
-
Thread
ATMega 128 Fuses setzen etc geht aber nicht programmieren
Hallo, ich habe das problem das ich per AVR Studio die Fusebits meines ATMega 128 setzen und lesen kann. Signatur lesen etc geht, Flash lesen auch. Aber ich kann kein Programm aufspielen. Hat jemand eine Idee woran das liegen kann???
Natürlich steht nichts drin, aber es geht. sind die fuses richtig???? Was passiert wenn man den SPIEN bit mal gesetzt und mal gelöscht hat???
-
Thread
Bits eines Flashspeichers beschreiben
>Kann man einzelne Bits eines Bytes des Flashspeichers durch >aufeinanderfolgende (byteweise) Schreibvorgänge nacheinander >programmieren (also auf 0 setzen), ohne dass die Zelle zusätzlichen >Schaden erleidet? Nein.
Ja. Seite! löschen (xxx byte) dann nach belieben Bits in dieser Seite auf 0 setzen. Die größte Belastung für die Flash-Zelle ist das löschen.
-
Thread
µC von 0 auf lernen. ASM oder C?
verstanden hat, wie ein µC funktioniert. Die Zeit die man dafür verwendet, kann man mit Lehrgeld gleich setzen. Als kleines Beispiel: Wenn ich aus ASM komme (AVR), dann weis ich/habe ich gelernt, dass sich der controller mit allem größer 8 bit schwer tut und float sehr komplex (ohne FPU) und resourcen fressend
ASM besser bedient sein. Soll doch mal einer von den C Kennern schreiben, wie lange es dauert ein Bit eines Portes zu setzen, bei einem Takt von 20MHz mit einem PIC16F887. Datenblätter lesen solltet ihr ja können ;)
-
Thread
ATMEGA8 eingeschaltete LED Zählen
die Bitposition der PORT Register wieder, wenn die Pins auf Ausgang geschaltet sind. Es gibt beim setzen oder löschen eines Bits eine kleine Verzögerung von, wenn ich mich recht erinnere, 1 oder 2 Takten. Aber das dürfte hier keine Rolle spielen.
Karl Heinz schrieb im Beitrag #3799363: > die Pins auf Ausgang geschaltet sind. Es gibt beim setzen oder löschen > eines Bits eine kleine Verzögerung von, wenn ich mich recht erinnere, 1 > oder 2 Takten. Atmel sagt, 1 NOP zwischen OUT und IN ist nötig. > Aber das dürfte hier keine Rolle spielen
-
Thread
arduino esp32 32bit/64bit-problem
Visual Studio auch 64 Bit debuggen. Oliver
Joachim B. schrieb im Beitrag #6918132: > aber unter 32&64 bit nur die 1.8.9 1.8.16 geht definitiv mit Win7-32bit
-
Thread
Marderschreck Selbstprogramm
the timer/coun ter clock frequency using the following equation: Muss ich im Register TIFR das bit TOV1 und im Register TCNT1 das bit OCRIC beides setzen? Mehr zu duty cycles finde ich dazu nicht mehr
> Muss ich im Register TIFR das bit TOV1 und im Register TCNT1 das bit > OCRIC beides setzen? Mehr zu duty cycles finde ich dazu nicht mehr Hatte einen kleinen Denkfehler Wenn ich das so wie folgt einstelle void Timer1(){
-
Thread
-
Thread
Sprachausgabe mit AVR
SD-Karte mit FAT16/32 Dateien im Root-Verzeichniss, Unterverzeichnisse auch möglich -WAVE-Dateien 8bit/8khz mono Code hat ca. 8kB
Morgen Ingo, eine Änderung ist nicht notwendig. Lege einfach je eine Datei für jeden Pin ab. Bit 0 = 001.wav Bit 1 = 002.wav Bit 2 = 004.wav : Bit 7 = 128.wav läuft super bei mir ! Die "Tasten" sind Taster und werden über den PinChange Interrupt 'abgefragt'. Siehe in "main.c" die Funktion
-
Thread
Nicht richtig gesetzte FuseBit
Download Bereich gibt es einiges. Ich will nicht Programmieren sondern nur die Fusebits richtig setzen können. irgend was einfaches. Danke im Voraus
finden!.. heißt es. Wer selbige Probleme haben solle der darf hier mal Schauen BASCOM Fusebits setzen in Deutsch ohne Wörter Buch. link: https://dl6gl.de/sites/default/files/downloads/fuses_mit_bascom_und_usbasp_setzen_0.pdf Wünsche allen eine Besinnliche Ruhige Zeit und einen Guten übergang nach
-
Thread
ATMEGA8 SREG + I setzen
ATMEGA 8 den Timerinterupt zum laufen zu bekommen. Laut Datenblatt muss ich dazu auch im SREG das I-Bit auf 1 setzen. Ich bekomm es leider nicht hin. [c] SREG |= (1<<I); [/c] Das war leider etwas naiv. Kann mir jemand weiterhelfen bitte?
Oh ok, dann wird damit das I-Bit gesetzt? Dann hab ich das doch mit drin. Aber irgendwas stimmt nicht. Denn das Programm hängt sich zwischendurch irgendwie auf. [c] wenn ich hier eine Variable verändere, dann erfolgt die
-
Thread
PORT/Register Beschreibung in AVR
aufsteigend stzen und somit z.b den 4 bit setzen oder nicht?
einzelne Bits in einem Byte oder Word setzen und löschen. Und das geht in C immer gleich. Und eine 0 zu schieben ist in jeder Programmiersprache und auf jeder Architektur sinnlos, Herr Ingenieur.
-
Thread
AVR, virtual port, power save
leo schrieb im Beitrag #6297690: > Und beim AVR-Assembler ein Opcode zum Bit-Setzen. Nö, der ist "SBI", bei "SBIT" meckert der Assembler.
Peter D. schrieb im Beitrag #6297701: > leo schrieb: >> Und beim AVR-Assembler ein Opcode zum Bit-Setzen. > > Nö, der ist "SBI", bei "SBIT" meckert der Assembler. Danke, ja - verwirrend ;-) leo
-
Thread
STM32 EXTI Pin auf 0 setzen?
Hi, ich habe glaube gerade ein Verständnisproblem. Ich arbeite mit einem ADS7843 Touchscreen-Controller, dessen #PENIRQ Ausgang mit einem EXTI-Pin verbunden ist. Der #PENIRQ Pin am ADS7843 hat auf dem Display-Board einen 100k Pullup. Wenn ich nun nur eine Interrupt-Routine habe, in der *nicht* ausgelesen wird, dann funktioniert das soweit auch. Wenn ich nun den Chip auslese, dann werden gleich ganz viele wirre Interrupts ausgelöst, egal ob in main() oder ISR ausgelesen wird. Der #PENIRQ Pin ist intern über eine Diode an einem der analogen Eingänge. Wenn da nun gemessen wird und die
-
Thread
Neue AVR Familie - AVR-DA
? 8Bit Marktführer mögen sie sein, mehr nicht.
schrieb im Beitrag #6262554: > ... https://www.der-postillon.com/2017/05/aepfel-birnen.html 32-Bit / 8-Bit
-
Thread
Lock bits beim AT89S8252 setzen?
Hallo, kann mir jemand sagen wie die lockbits beim AT89S8252 zu setzen sind? Habe darüber nirgend wo was gefunden. Gruß Markus
button mit der aufschrift STK. dann wählst du deinen AT89S8252 aus und klickst auf das register "fuse bits" dann siehst du was es für fuses gibt.
-
Thread
Mathe-Frage. Münzwurf
D. I. schrieb im Beitrag #2036563: > 2^100 viel spaß Avg 2 bits: 1.0 Avg 3 bits: 1.5 Avg 4 bits: 1.5 Avg 5 bits: 1.875 Avg 6 bits: 1.875 Avg 7 bits: 2.1875 Avg 8 bits: 2.1875 Avg 9 bits: 2.4609375 Avg 10 bits: 2.4609375 Avg 11 bits: 2.70703125 Avg 12 bits
. schrieb im Beitrag #2036644: > D. I. schrieb im Beitrag #2036563: >> 2^100 viel spaß > Avg 2 bits: 1.0 > Avg 3 bits: 1.5 > Avg 4 bits: 1.5 > Avg 5 bits: 1.875 > Avg 6 bits: 1.875 > Avg 7 bits: 2.1875 > Avg 8 bits: 2.1875 > Avg 9 bits: 2.4609375 > Avg 10 bits: 2.4609375 > Avg 11 bits: 2.70703125
-
Thread
Microchip kauft Atmel Gesperrt
bittigen > Cores verwirklicht werden können. Der Zug kommt von einer ganz anderen Richtung: 32-Bit-Cores sind inzwischen so effizient, dass sie auf dem Chip keinen nennenswerten Platz einnehmen. Man bekommt die Leistung also geschenkt. Es gibt dann keinen wirklichen Grund mehr, auf 8 Bit zu setzen
> Man bekommt die Leistung also geschenkt. > Es gibt dann > keinen wirklichen Grund mehr, auf 8 Bit zu setzen. Du bekommst mit ARM auch eine kompliziertere Architektur geschenkt. Warum soll man sich darin samt zugehöriger Softwarelandschaft einarbeiten, wenn ein einfacher 8-Bitter immer noch locker
-
Thread
AVR gegen den Rest der Welt
VErfügbar. Mit derselben günstigen Hardware und derselben Entwicklungsumgebung kann man vom kleinen 8Bit sechspinner über die 16Bit mit DSP Funktionalitäten bis hin zum 32Bit mit MIPS Kern alles Programmieren und bei den meisten PICs auch debuggen. Als Bastler hat man eine hohe Verfügbarkeit und insbesondere
mit einem Controller als Slave... Klar kann man SPI puffern. Wenns sein muss, mit beliebig vielen Bits.
-
Thread
RS485 bus mit Fleury Uart
z.b. EmpfängerAdr,SenderAdr,LängeDaten,Daten....,CRC. 4. Nach dem Empfangen solltest du das MPCM bit wieder setzen. ms
kontrolle. Dein Master sendet ca. alle 600ms einen Frame.Ist die LCD-Lib so schnell dass Du das MPC-Bit rechtzeitig setzen kannst bevor das Frame vom anderen in den Ringbuffer gelangt. ms
-
Thread
Präzise Pulse aus Arduino Leonardo
teilen, 250 Takte "on" und das TOP-Register auf 25000 stellen Taster 4 den Ausgang dauer-LOW setzen und ansonsten den Ausgang dauer-HIGH setzen Für Taster 1 und 2 bräuchte ich dann mindestens einen 9bit-Timer, für Taster 3 einen mit mindestens 15 Bit. Zum Glück enthält der 32u4 zwei 16bit-Timer
letzten Kommentare waren absolut nicht konstruktiv. Naja, BTT: Bevor man OCR1A und OCR1B auf 16bit-Werte setzen kann, muss man den entsprechenden Modus auch in TCCR1B wählen. Ich habe also unter Zeile 65 noch ein TCCR1B = tccr1b_setup; eingefügt und die Zeile 85 in TCCR1B |= tccr1b_tmp; geändert.
-
Thread
Nokia 6100 Grafiklibrary die Zweite
Werte umfassende Tabelle zusammen. Diese Tabelle enthält also nach ihrer Fertigstellung 256 Werte a 12Bit. Der Vorteil dabei liegt daran das man nur sehr wenige Daten an das Display senden muß, der Nachteil ist aber der Fakt das man nicht frei und beliebig ALLE 256 Werte der internen Tabelle setzen kann
musst also 2 Dinge machen: 1.) glcd_Colors[] muß die korrekte Größe besitzen, dazu glcd_ColorTableBits in deinem Falle auf 4 setzen, da 2^4 = 16 ist. 2.) nun musst du natürlich vor dem Zeichnen einen Fontzeichens dieses glcd_Colors[] Array mit den richtigen Farben füttern. Diese Vorgehensweise der
-
Thread
RFM01/02 Basics
Hier initialisiere ich mit 0 1 (Sync Word) Dann sieht der FIFO Reset so aus: cmd: CE 84 Bits ff und fe Null setzen -> FIFO ausschalten und seinen Zähler und Inhalt löschen cmd: CE 87 Bits ff und fe Eins setzen -> FIFO einschalten und Füllen ab
Modul RFM 02 Wie unterscheidet man in der Config ob ich mit FSK oder SDI sende. Also an welchen Bits muss man setzen, ich finde in der Doku darüber nichts.
-
Thread
50ns Delay mit STM32H7
mit 200MHz, ein Clock Cycle dauert also 5ns. > Wie sag ich dem Controller jetzt, dass er nach dem setzen 50ns warten > soll bis er MISO abfrägt? Oh je! Soviele Experten und soviel Unsinniges Zeug. [c] GPIOB->BSRR = (SET_GPIO << PB3); // IO-Bit set GPIOB->BSRR = (RESET_GPIO << PB3); /
im Code einen Pin setze. Dann lese ich das Kommentar, und frage mich ob ich das nicht hätte besser machen können. Hans-Georg L. schrieb im Beitrag #7067363: > Sind dafür nicht gerade die MSSI Bits im Register SPI_CFG2
-
Thread
FPGA in Serie
wenn es nicht wirtschaftlich erscheint. Vieleich kann man die beantwortung ja in Bezug zu 50 PWMs setzen (500Hz, 10Bit)
Frank schrieb im Beitrag #2588619: > Vieleich kann man die beantwortung ja in Bezug zu 50 PWMs setzen (500Hz, > 10Bit) 500Hz? Das sollte ein Cortex M3 doch locker als Soft-PWM zustande bringen?
-
Thread
DS18B20 Temperaturberechnung
Mal eine dumme Frage zur Auflösung: Wenn ich z.B. nur 10 statt 12 bit Auflösung haben will, sind laut Datenblatt bit 1 und 0 undefined. Bedeutet das, daß ich dann bei der Temperaturberechnung diese bits vorher auf 0 setzen muß? Oder den gelesenen Wert um 2 nach rechts
trotzdem durch 16 teile, werte ich doch diese beiden bits mit aus oder nicht? Ich hätte bzw. habe bis jetzt auch gedacht, daß ich die undefinerten bits nach rechts rausshifte und den Teiler dann entsprechend der Wertigkeit setze: 12 bit: Teilen durch 16
-
Thread
Art der if-Auswahl nur Geschmackssache?
. Wenn Du C auf AVR programmieren würdest, wüsstest Du, dass eine Zuweisung mit ~(1 << 7) zum Setzen aller Bits ausser Bit 7, oder zum Löschen von Bit 7 per AND völlig normal und gängige Praxis ist. Und genau das ist ~0x80.
Du, dass eine > Zuweisung mit ~(1 << 7) zum Setzen aller Bits ausser Bit 7, oder zum > Löschen von Bit 7 per AND völlig normal und gängige Praxis ist. Und > genau das ist ~0x80. Karl schrieb im Beitrag #5375765: > Wird er nicht: c1 = ~(1<<7);
-
Thread
SPI zwischen zwei AtMega8
gesetzt wird. Erst wenn SS auf LOW gezogen ist kann die Übertragung starten. CPOL und CPHA sind Bits die ich setzen muss um die o.g. Modus einzustellen. Soweit ich das verstanden habe sieht es folgendermaßen aus. CPOL = 0 , CPHA = 0 : Bit wird bei steigender Taktflanke übertragen CPOL = 0 , CPHA
Daten (SPDR = '1'; while ( !(SPSR & (1<<SPIF)) ) ;) > Master: Warte, bis sicher ist, dass das letzte Bit beim Slave angekommen > ist > Master: Setze SS auf high MfG, Arno
-
Thread
Logic Analyzer bauen
und wie willst du dann einen trigger auf z.b eine 16bit adresse setzen??? ;) ich glaube, dass du auf jeden fall *alle* inputs in *einen* cpld/fpga laufen lassen musst um allein mal den trigger zu machen... aber ich lasse mich gerne eines besseren
sich über den USB programmieren und Daten können zwischen PC und FPGA ausgetauscht werden. Mein 8-Bit LA ist schon erfolgreich im FPGA gelaufen. Was noch fehlt ist der Umbau auf 16 Bit, das Testen des externen ASRAMs und eine Software für das Setzen der Trigger bzw. die Auswertung der aufgenommen Daten
-
Thread
grafische Flüssigkristallanzeige schnell löschen
5227; i+=2) { P4OUT=0; CD_H; // (* C/D = H (ctrl) *) P5OUT &=~(BIT2 + BIT3); //WR = L; CE = L P5OUT=0x0F; //alles H P4OUT=d; CD_H; // (* C/D = H (ctrl) *) P5OUT &=~(BIT2 + BIT3); //WR = L; CE = L
//alles H P4OUT=0; CD_H; // (* C/D = H (ctrl) *) P5OUT &=~(BIT2 + BIT3); //WR = L; CE = L P5OUT=0x0F; //alles H P4OUT=d; CD_H; // (* C/D = H (ctrl) *) P5OUT &=~(BIT2 + BIT3); //WR = L; CE = L
-
Thread
USART RS485 Daten empfangen über ISR
Analyzer noch Oszilloskop? Es funktioniert jetzt, ich musste im "USART0.CTRLA" schon das richtige Bit setzen: [c] USART0.CTRLA = (0 << USART_RXCIE_bp) /* Receive Complete Interrupt */ | (0 << USART_TXCIE_bp) /* Transmit Complete Interrupt */ | (0 << USART_DREIE_bp)
immer noch 100x besser als gar keins zu haben. > ich musste im "USART0.CTRLA" schon das richtig Bit setzen: > USART0.CTRLA = ... > USART0.CTRLA |= ((0 << 0) | (1 << 1)); Wo ist da jetzt der Unterschied zu: > USART0.CTRLA = ... > | USART_RS485_EXT_gc; Welchen Wert hat USART_RS485
-
Thread
IIC Bus-Register setzen
das Prinzip mit dem IIC-Schnitstelle funktioniert. Jedoch verstehe ich nicht wie man ein Register setzen kann. Könnte mir jemand dies erklären? Wann sollte die Register-Adresse übergeben werden? Mfg, Webdesigner
IIC-Schnitstelle >funktioniert. WIRKLICH? > Jedoch verstehe ich nicht wie man ein Register setzen >kann. Das ist von jeweiligen IC abhängig, das macht jeder anders. Wenn gleich es Ähnlichkeiten gibt. > Könnte mir >jemand dies erklären? Wann sollte die Register-Adresse übergeben werden?
-
Thread
Debug mit Watchdog STM32+CubeIDE
Bei meinem L451 kann ich das Bit einfach wie jedes andere setzen. Die Frage ist nur, wie Register und Bit bei dir heißen. Aber Bit 11 oder 12 für den WWDG bzw. IWDG im DBG APB freeze register 1 ist eigentlich eindeutig. Anders gesagt
sonst könnte ja die IDE nicht mit ihm reden. Falls die öffentlich ist kannst du es darüber versuchen. Bits setzen kann er mit Sicherheit. Ansonsten mal versuchen, unter reset zu verbinden und dann per Register view das Bit zu setzen.
-
Thread
PIC Interrupt Probleme
/Timer 2 an } void SetupADC(){ TRISAbits.RA0 = 1; //Port RA0 Poti auf Eingang setzen TRISBbits.RB0 = 1; //Port RB0 Taster auf Eingang setzen ANSELbits.ANS0 = 1; //RA0 auf Analogeingang setzen (=1, 0 = digital) ADCON0bits.ADON = 1; //A/D-Wandler
; PIR1bits.ADIF = 0; ADCON0bits.GO_DONE = 1; } return; }[/c] wenn ich nun das ADC-Interruptenablebit setze, und das einlesen in der Polling-Schleife auskommentier, funktioniert nichts mehr
-
Thread
bit Datentyp erzeugen
= (unsigned char *) &bitfeld; und dann mit *p_bitfeld = 0; alle Bits löschen oder mit *p_bitfeld = 0xff alle setzen oder was du auch immer willst. Hoffe geholfen zu haben. Ansonsten kannste es ja vieleicht auch für was anderes brauchen. und
Sache, aber brauchen leider sehr viel mehr Code als Bitsetzbefehle mittels or ect. zB. #define Set_Bit(Byte,Pos) Byte |= (1<<Pos) //Bit setzen (Macro) Josef
-
Thread
LCD mit Interrupts?
#ifdef LCD_BUSY lcd_busy_null(); #endif LCD_PORT_RS |= (1<<LCD_RS); // RS auf 1 setzen lcd_out( data ); // zuerst die oberen, lcd_out( data<<4 ); // dann die unteren 4 Bit senden #ifdef LCD_DELAY _delay_us( LCD_WRITEDATA_US ); #endif }[/c]
Wenn man alle Pins des LCD an einem Port hat, muss man nicht die Bits einzeln setzen, wie oben: " // DB4-DB7 als Ausgaenge schalten LCD_DDR_DB7 |= (1<<LCD_DB7); LCD_DDR_DB6 |= (1<<LCD_DB6); LCD_DDR_DB5 |= (1<<LCD_DB5); LCD_DDR_DB4 |= (1<<LCD_DB4);" usw.
-
Thread
ATMEGA8535 tut nicht!!!
Unterstützung. Ich will den ATMEGA8535 genau so konfigurieren wie den AT90S8535. Wenn ich die FuseBits neu setzen will, dann erscheint beim reinschreiben in den ATMEGA immer eine Fehlermeldung. So wie es aussieht kann man den ATMEGA nicht mehr programmieren.Vielleicht ist er dabei kaputt gegangen.
jetzt den ATMEGA mit dieser Schaltung (siehe ANhang) betreiben will, wie muss ich da dann die FuseBits setzen ? Ich möchte dann den ATMEGA in der selben Schaltung betreiben wie der AT90S8535
-
Thread
STM32F103 GPIO
vor um Größenordnungen einfacher, um gerade mal einen Pin zu setzen. > ganz ohne Bank-Umschaltung (wie bei AVR's mit > 64 KiB > Speicher), Wer braucht schon soviel bei typischen 8-Bit Programmen... Und ja, bei größerem Speicherbedarf ist 32Bit ARM im Vorteil
GPIO-Einheit per Default ab Reset schon eingeschaltet, man muss nur noch Datenrichtung auf Ausgang setzen (ein Register, ein Bit pro Pin, genau wie AVR) und schon kann man anfangen zu blinken.
-
Thread
[V] Bausatz für Giess-o-mat Sensor
Hallo Tobias, ich verschiebe nichts am ausgelesenen Wert, die Bit-Operationen setzen und löschen nur Register-Werte des Timers. Du könntest dein Programm zum Auslesen mal zeigen, dann kann man dir sicher bei der Messung helfen. Gruß
Periodendauern sind ziemlich klein und der Messfehler dadurch recht groß. Ich habe da also einen 14 Bit Zähler IC angeschlossen. Das 14. Bit resettet den Zähler und das 13. Bit verwende ich für die Auswertung, sprich der ESP misst die Periodendauer von 13. Bit. Das sind so 26 ... 2000 ms, also eher gemütlich
-
Thread
Bits shiften - ich verstehe es nicht.
(T v) { static_assert(Bit1 != Bit2); static_assert(Bit1 < sizeof(T) * 8); static_assert(Bit2 < sizeof(T) * 8); constexpr T mask1{(1 << Bit1)}; constexpr T mask2{(1 << Bit2)}; constexpr T mask{mask1
0x40" und "Setze Bit 6"? Beides unter der Voraussetzung, das der Wert vorher genullt wurde... Richtig: keiner. Nur ist der Compiler so dämlich das er das nicht merkt und fröhlich den (leeren) 16-bit-Wert "0" auf
-
Thread
SPI 16-Bit Problem
falsch. Meine Slave Konfiguration sieht wie folgt aus: [c] void spi_config_slave() { P1SEL = BIT1 + BIT2 + BIT4 + BIT5; P1SEL2 = BIT1 + BIT2 + BIT4 + BIT5; UCA0CTL1 = UCSWRST; // **Put state machine in reset** UCA0CTL0 |= UCCKPL + UCMSB + UCMODE_2 + UCSYNC
> Hat er schon oben mit EOR getan. Korrigiert, sieht es bisher so aus: Master sendet 1 Byte (Bit 8: R/W, Bit 7-0 Register Adresse) Slave antwortet mit ACK_READ oder ACK_WRITE Master sendet H_BYTE_REQUEST Slave antwortet mit oberen 8-Bit des 16-Bit Wortes Master sendet L_BYTE_REQUEST
-
Thread
Atmega32 16Bit PWM oder 10 Bit?
Jep, zur Auswahl gibt es Initializes the PWM module. Parameter wave_mode is a desired PWM-16bit mode. There are several modes included : PWM, Phase Correct, 8-bit PWM, Phase Correct, 9-bit PWM, Phase Correct, 10-bit Fast PWM, 8-bit Fast PWM, 9-bit Fast PWM, 10-bit Parameter prescaler
LIB und scheibe das bissel Zeug einfach selber. Ist ja nun nicht wirklich Raketentechnik, einen 16Bit-AVR-Timer in den Fast-PWM-Modus zu bringen, die Hardware-Ausgabe und die PWM-Frequenz zu setzen. Das sind doch nur wenige Zeilen C-Code. Wer selbst dazu nicht in der Lage ist, hat halt einfach Pech
-
Thread
4Bit LCD, restliche Portpins Problem
das zutrifft, musst Du an allen Stellen, an denen nach PORTS geschrieben wird, die beiden oberen Bits setzen, z.B aus [avrasm] ldi temp1, 0b00000011 ; muss 3mal hintereinander gesendet out PORTD, temp1 ; werden zur Initialisierung [/avrasm] wird [avrasm
wir den Code den ich benutze: bei dem lcd_init wird der Port geändert... Aber auch wenn ich die bits einzelnd auf 1 setze klappts nicht... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; LCD-Routinen ;; ;; ============ ;;
-
Thread
74HC595 wie steuert man das latch an?
ah okay. also schreibe ich in das register rein, setze den clock, dann geht das in den latch. ich schreib weiter ins register, setze wieder n clock, dann wird das vom latch ausgegeben und die daten wieder ins latch. Richtig so?
darüber an [lowactive]). Um die Daten überhaupt erst ins Register zu bekommen, musst du für jedes Bit eine Taktflanke an SH_CP legen (8Bit ==> 8 Takte) Wenn dann alle 8 Bits übertragen wurden, gibts du noch eine Taktflanke auf ST_CP und die Daten werden auch ausgegeben. Um die Daten im Register zu
-
Thread
Binärzähler 16 Bit? Gesperrt
Wolf G. schrieb im Beitrag #5127715: > Meine Frage: ist euch ein 16-Bit-Binär-Zähler (mit oder ohne > Überlauf-bit) bekannt? Takteingang und sonst nur Ausgänge? 16 Bit ist eher selten, weil das Gehäuse so groß sein müsste. Ich würde das eher auf zwei 8 Bit Zähler aufspalten
schrieb im Beitrag #5127737: > Wolf G. schrieb im Beitrag #5127715: >> Meine Frage: ist euch ein 16-Bit-Binär-Zähler (mit oder ohne >> Überlauf-bit) bekannt? Takteingang und sonst nur Ausgänge? > > 16 Bit ist eher selten, weil das Gehäuse so groß sein müsste. Ich würde > das eher auf zwei 8 Bit
-
Thread
Makro für: PORTD |= (1<<PD1)
PS: #define Aus (PORTD &= (0<<PD0)) macht alle Bits, nicht nur PD0 sondern auch PD1-PD7 zu 0.
>// C > uint8_t X = (PINB & (1<<PB2)) > 0; Aus andrem Thread >x = (PORTA & (1 << BIT)) == (1 << BIT) Wo ist denn der Unterschied, ob ich PINx oder PORTx schreibe ?
-
Thread
Atmega128 16-bit Timer
Outpurt A > arbeite. Ist das falsch? Dann musst Du den Timer aber im CTC-Modus betreiben und die WGM-Bits entsprechend setzen! Und dann den Compare-Interrupt benutzen und nicht den Overflow. So wie Du es oben eingestellt hast, läuft der Timer immer bis zum Overflow weiter und die Interrupt-Frequenz wäre
an dieser Zeile sind nur Änderungen von 0en in 1en oder umgekehrt erlaubt. So kann man bequem I/O-Bits setzen und löschen und dabei stets mühelos sehen, welche es sind. >Nein das TCNT1 setzt ich nicht neu, da ich ja über Compare Outpurt A >arbeite. Ist das falsch? Ja. Dann läuft der Timer ja
-
Thread
PIC16F887 auf MC2V0 - I2C
*jetzt* nötig: Wenn du SDA auf '1' setzt, liest der PIC die Pegel am gesamten Port ein, ändert das bit und schreibt das gesamte Byte wieder zurück ins PORTx Register. Bei den Pegeln, liest er SCL als '1' und schreibt also wider 1 zurück. Und wenn er SCL auf '1' setzen sollte setzt er SDA damit auch auf
Ok. wow danke für den Tipp! Das hätte ich nicht selber gefunden. Werd mich gleich mal dran setzen. Der schlimmste fall wäre das ich immer nur ein Latch durchschalten darf. Das würde bedeuten ich muss vor jedem Bit, schauen, ob ich Einlesen oder Ausgeben will und die Latches K8/K9 entsprechen
-
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
µC mit Uhrenquarz betreiben
16 bit schrieb im Beitrag #3257339: > Als Ersttäter sollte man auf das modernere und weniger fehlerträchtige > setzen. Sitzt du noch an einem P1? Ich weiß einsteigen vs umsteigen. Für mich wäre es ein
Carsten R. schrieb im Beitrag #3257453: > 16 bit schrieb: >> Als Ersttäter sollte man auf das modernere und weniger fehlerträchtige >> setzen. Sitzt du noch an einem P1? > > Ich weiß einsteigen vs umsteigen. Für mich wäre es ein Umsteigen