-
Thread
Display-Ansteueung mittels Xilinx-FPGA
Pulse gebe schwarze Pixel aus und setze VSync = 0 11.) solange VCounter < 524 gebe schwarze Pixel aus und setze VSync = 1 12.) wenn VCounter >= 524 setze VCounter = 0. Also hast du minimal zwei Processe. Eine der mit Clock = 25 MHz
html#187983 um nocheinmal auszuholen/zusammenzufassen: Also du wirst kaum einen Speicher mit 24bit Organisation finden. Daher empfehle ich dir entweder zwei asynchrone SRAMs zu je 16bit (wovon im ersten zwei und im zweiten nur ein Farbkanal zu je 8bit abgelegt ist) oder drei asynch. SRAMs zu je 8bit
-
Thread
UART RX Interrupt Problem
UBRR0 empfiehlt es sich, zunächst das High-Byte zu setzen, dann das Low-Byte. Und BAUD_Wert sollte ein 16 bit Integer sein wobei man in dem Fall auch das High-Byte zunächst zu 0 setzen kann und BAUD_Wert dann ans Low-Byte übergibt. Es kann sonst sein, dass
im Beitrag #4565087: > Beim Einstellen des UBRR0 empfiehlt es sich, zunächst das High-Byte zu > setzen, dann das Low-Byte. Und BAUD_Wert sollte ein 16 bit Integer sein > wobei man in dem Fall auch das High-Byte zunächst zu 0 setzen kann und > BAUD_Wert dann ans Low-Byte übergibt. Es kann sonst sein
-
Thread
GCC Optimierung killt Funktion
ging ich davon aus, dass die Speed Einstellung etwas damit zu tun hat, wie schnell der Pin nach dem Setzen des Bits im BRSS sich wirklich umschaltet. Man findet im Netz auch was von wegen Flankensteilheit. Bei einer 1.3Mhz SPI denkt man ja nun nicht, dass man da die volle APB2 Speed von 1/2 Sycklock = 84
void tls_Set74HCT595(uint8_t data) { for (uint8_t i = 0; i < 8; i++) { // Datenbit setzen GPIO_SetPinValue(GPIOE,HCT595_DS,(data & 0x80)); __DSB(); // Bit anlegen GPIO_SetBits(GPIOE,HCT595_SHCP); __DSB(); // SHCP -> High GPIO_ResetBits(GPIOE,HCT595
-
Thread
Port Pins mit Struct ansprechen
UNSETPIN(PORTA, LAMPE2); Hallo, SETPIN(PORTA, LAMPE1 & LAMPE2 & LAMPE3); wird kein einziges Bit setzen. 0x01 & 0x02 & 0x04 ist immer noch 0x00. mfg mf
schrieb im Beitrag #207610: >> #define SETPIN(port, pins) port |= pins > ... > wird kein einziges Bit setzen. > > 0x01 & 0x02 & 0x04 ist immer noch 0x00. > > mfg mf Mit LAMPE1 = LAMPE2 = LAMPE3 = 1; wäre das nicht passiert :-)
-
Thread
Bits nacheinander aus Maske lesen
ziehen. Ginge das dann einfacher wenn ich als Grundvorraussetzung den Pegel von SDA immer auf 0 setze und dann je nachdem welcher Bit in der Maske gesetzt ist, den Pegel auf 1 setze oder eben nicht?! Also so: [c] uint8_t Maske = BitMaske; //Damit BitMaske nicht "leer geschoben" wird
if(Maske & 0x80) //SDA: Prüfe ob Maskenbit 1 SDA_PORT |= (1<<SDA_PIN); //SDA: Setze Pin auf 1 wenn Maskenbit 1 else SDA_PORT &= ~(1<<SDA_PIN); //SDA: Setze Pin auf 0 wenn Maskenbit 0 [/code] Gruß
-
Thread
Programm läuft nicht Verbesserungsvorschläge?
offensichtlich Unsinnig ist. Denn dein Code impliziert dass du denkst, dieses Konstrukt würde das TXEN0 Bit auf 0 setzen. Was natürlich nicht stimmt. Damit stiftest du Verwirrung. Auch bei dir selbst wenn du den Code später mal anguckst. gruß cyblord
fragt: Tippfehler oder doch kein Tippfehler? Auf der einen Seite suggeriert das Ansprechen des ADLAR Bits, dass er es aktiv beeinflussen möchte (um es auf 0 zu setzen), auf der anderen Seite würde aber ein einmal gesetztes ADLAR Bit hier mit Sicherheit nicht 0 gesetzt werden, denn die ganze Anweisung ist
-
Thread
Einsteigerfrage zu Cortex M0 mit LPCXpresso
->IEV |= (0x1<<bitPosi); break; default: break; } return; } [/c] Der ganze Code muss dazugelinkt werden nur um eine einzelne Zeile Register setzen durch eine Funktion zu ersetzen. Was sense,
Struktur ansprechen? Kann ich die Bits nicht irgendwie auch direkt setzen z.B. SYSAHBCLKCTRL |= (1<<6);
-
Thread
einzene Bits prüfen ( if (bit) {.} )
weil C so hardwarenah ist, ist das so. Bei weitem nicht alle Mikroprozessoren haben Befehle zum Setzen, Löschen und Abfragen einzelner Bits per Bitnummer. Aber wohl jeder Prozessor der letzten 40 Jahre hat Befehle für bitweise Logikverknüpfungen und Schiebeoperationen. Deswegen hat man sich dafür
bitweisen Logikverknüpfungen sind wesentlich flexibler als Einzelbitbefehle, da man damit auch mehrere Bits gleichzeitig setzen, löschen oder abfragen kann. Und beliebig viele Operatoren konnten halt auch nicht implementiert werden, da dabei irgendwann die Sonderzeichen auf der Tastatur ausgehen ;-)
-
Thread
Probleme bei verschachtelten Interuppt
einstellen, etc. sei main_loop: wenn Job-Bit 1 gesetzt setze Job-Bit 1 zurück führe die zugehörige Aktion aus, zb den ADC starten wenn Job-Bit 2 gesetzt setze Job-Bit 2 zurück führe die zugehörige Aktion aus, zb den ADC auslesen und verarbeiten wenn Job-Bit 3 gesetzt setze Job-Bit 3 zurück führe zugehörige Aktion aus, zb Timer einschalten etc. etc. jmp main_loop [/code] die ISR wiederrum, setzen nur das Job bit.
-
Thread
Unklarheiten bei einem C Programm
Bwiwrkt beides dasselbe, ich weiss auch nicht was das soll. Falls der Programmierer lediglich das Bit vom dem if Statement wieder auf 0 setzen wollte, hat er es falsch gemacht, er setzt alle Bits auf null. Womöglich wollte der Programmierer folgendes: [c] if(ACSR & (1<<ACO)) { PORTC |= (1<
konfiguriert werden sollte, hätte er DDCR statt PORTC schreiben sollen. Wollte er einfach Bit0 auf high setzen, hätte er besser PC0 statt DDC0 geschrieben. */ PORTC |= (1<<DDC0); } else{ /* Wie schon Vorredner geschrieben: gewiss wollte der Autor
-
Thread
c't - Bot Geschw.regelung
o Bits in Control Register TCCRnA & TCCRnB schreiben. Siehe Bitmanipulation 6 Vergleichswert OCRnx setzen zu 1) Pins auf low setzen brauch ich denke ich nicht, weil alle Ports standartmäßig auf low
: WGM00 und WGM01 sind Bits des Registers TCCR0. Außerdem hast Du die Bits verwechselt und das Löschen von einzelnen Bits geht anders. Also TCCR0 |= (1 << WGM01); TCCR0 &= (uint8_t)~(1 << WGM00); > Und COM00 setze ich auf
-
Thread
Zufrieden mit Syntax-Highlighting?
[vhdl] architecture EXAMPLE of SLICES is signal BYTE : bit_vector (7 downto 0); signal A_BUS, Z_BUS : bit_vector (3 downto 0); signal A_BIT : bit; begin BYTE (5 downto 2) <= A_BUS; BYTE (5 downto 0) <= A_BUS; -- wrong Z_BUS (1 downto 0) <= `0` & A_BIT; Z_BUS <= BYTE (6 downto 3); Z_BUS (0 to 1) <= `0` & B_BIT; -- wrong A_BIT <= A_BUS (0); end EXAMPLE; [/vhdl] Wird noch optimiert.
-
Thread
16-Bit Timer ATmega
>gestartet wurde bei wieder bei 100. Dein Code-Fetzen verhindert auch keinen Überlauf. Das Setzen des CS-Bits beeinflußt den Zählerstand des Timers nicht. Also kann der durchaus auch mal bei 65535 starten. MfG Spess
willst. Ansonsten musst Du nach den beiden ISRs den Timer stoppen und den Zähler wieder auf Null setzen.
-
Thread
Wie funktioniert JTAG?
Schieberegister zusammengefasst werden. Wenn ich also z.B. 16 I/O-Ports hätte könne und müsste ich ein 16-Bit (2Byte) dort reinschieben um Daten zu setzen und auslesen um den Zustand zu ermitteln. Das wäre das Datenregister (DR genannt?). Um andere Dinge zu tun, bzw. überhaupt dem Chip (zu testenden Modul)
nach Ende der Operation dann ganz rechts) 1 => nächstes Bit Jetzt setze ich TMS wieder wie folgt: 1 => Der Shift-IR Zustand wurde beendet und in den Exit1-IR gewechselt. Zu dieser Zeit liegen die auf TDI eingeschobenen Bits noch im IR-Register, sind aber
-
Thread
Probleme Schieberegister 74LS164 an ATtiny
ja jemand eine gute Idee, Gruss, Stefan void w2led(int number, int dot){ //Bits zum Shifter for (int i=0;i<8;i++){ if (number%2){ //mittels MOD2 Bits auslesen PORTB|=(1<<PB1); //0 oder 1 auf Port setzen }else{
ihn leicht elsen kann. [C] void w2led( uint8_t pattern, uint8_t dot) { //Bits zum Shifter if( dot ) pattern |= ( 1 << 0 ); // Dezimalpunkt setzen falls angefordert for( uint8_t i = 0; i < 8; i++ ) { // Datenbis ausgeben. Es wird immer Bit 0 von pattern
-
Thread
News aus der Atmel Gerüchteküche
XMEGAs sind die Kennwerte und die Funktionalität den >>klassischen Megas um Längen voraus. Wir setzen sie auch in großen >>Projekten ein. > > Verwendet ihr auch die internen ADCs? Hat ATMEL jetzt die Probleme mit > den ADCs in den XMEGAs im Griff? Yep, 2x 12bit bei je 2msps und gain stage,
Da lese ich doch von einem Interview mit CEO Steven Laub. Sinngemäß soll Atmel für 32 Bit primär in ARM investieren und 8 Bit AVR bleiben.
-
Thread
Signal auswerten
speichern Flanke auf "steigend" stellen "Pulslänge" = "Stopzeit" - "Startzeit" Flag setzen.
könntest Du mal in Deinem Code die "|=" bei den Zugriffen auf TCCR1A und B durch "=" ersetzen. Die Bits haben zwar alle lt. Datenblatt den Reset-Wert 0, aber man weiß ja nie. Und andere Bits in den Registern brauchste eh nicht.
-
Thread
LED blinken lassen funktioniert nicht wenn ich nur den entsprechenden Pin als Ausgang setze
DDRB |= 0xFF funktioniert es. aber warum funktioniert das nicht, wenn ich nur PINB5 als Ausgang setze? habe auch alle anderen probiert (einfach die zahlen von 0 bis 7 (aus iom328p.h)) aber nie fängt die an zu blinken.
Beitrag #4823930: > DDRB |= PINB5; Diese Zeile übersetzt sich zu DDRB |= 5; Setzt sich in Bits zusammen aus 0000_0101 Das Bit 5 das du setzen willst ist nun nicht dabei.... Ebenso verhält es sich mit Zeile PORTB |= PORTB5; Hier machst du es richtig, du benutzt PORTB5 zu shiften:
-
Thread
Siedle In-Home-Bus Protokoll
Handbücher von Siedle gesurft. Strukturell können an einem einstrangigen Bus 31 Geräte sein, das sind 5 Bit. Es man bis zu 15 Stränge geben, das wären weitere 4 Bit. Die Tasten / Funktionen jedes Geräts haben eine ID, das dürften auch ein paar Bit sein, 3-4 Bit? Bis hier wären wir bei 5+4+4 = 13 Bit.
Ergebnisse mitteilen. Zunächst finden Sie unten mein aktuelles Verständnis des Pakets: 010 - 3 Bit, Start des Siedle In Home-Buspakets 6 Bit - Signal oder Befehl 5 Bit - Adresse des Zielgeräts 4 Bit - Adresse des Zielsegments 010 - 3 Bits, normalerweise sind sie immer so, aber sofort habe ich
-
Thread
Visual Studio 13 und RS232
Weiß jemand, wie man die Signalpegel an der RS232 im Visual Studio 13 setzen und auslesen kann? Danke
. Aber auch damit kann man die Signalpegel an der Schnittstelle nicht setzen und auslesen. Oliver
-
Thread
avr-gcc-10 - "volatile deprecated [-Wvolatile]" Warnungen
der Ära Mega128. Alle neueren machen sbi/cli ohne read/modify/write auf das ganze Register, die setzen das Bit direkt. Oliver
xxxCLR und xxxSET bzw. Flagregister, da reicht der Zuweisungsoperator (kein compound) , um atomar ein Bit zu setzen oder zu löschen.
-
Thread
AVR: 16-bit-Counter Verwendung so ok?
Danke für den Tip, dachte zunächst das geht nicht, weil es kein eigenes Bit gibt, wo man das setzen kann, aber hab nun mal gesucht. Kannst du mir bitte noch sagen ob das hier dann stimmt so: TCCR1A = (1<<WGM12); Er setzt dann den Counter wieder auf 0, wenn es ein Compare
Match mit OCR1A _oder_ OCR1B gibt - richtig? Muss ich dann OCR1B auf einen größeren Wert als OCR1A setzen? Könnte ich ja einfach auf 0xffff stellen. Danke schonmal
-
Thread
LCD EA W204B-NLW
@Kurt W. Das Verhalten könnte daher kommen, dass das sogenannte RE-Bit nicht gesetzt wird bei der Initialisierung. HÄÄÄ was ist das RE-Bit? Das ist, das Erweiterungs-Bit, laut Datenblatt damit es HD44780 kompatible wird. Im Datenblatt ist es etwas irreführend
@Kurt W. Das Initalisierungs Beispiel aus dem Datenblatt muss noch für den 4-Bit Modus angepasst werden. (siehe Anhang) Wichtig ist hierbei, dass das RE-Bit wieder zurückgesetzt wird nachdem "8-Bit Datenlänge, extension Bit RE und 4 Zeilen Modus" eingestellt wurde.
-
Thread
ATTiny13A ADC - Was ist falsch im Code?
ADCWerte aus dem ADCH holen und damit arbeiten... muss ich dann jedes mal das ADC Start Conversion Bit setzen - würde das gehen? Viele Grüße Alex
mir dann etwas zum flag geschrieben haben!). Ob es dann ausreicht die Bits für den Trigger Select im ADCSRB zu setzen - oder eben auch noch interrupts zu enablen (könnte ja sein dass der free running mode so funktioniert, siehe text oben)- das weiß man nur, wenn man es eben
-
Thread
Tischmultimeter Selbstbau >= 5 1/2 Stellen
> Ich möchte mir gerne ein Multimeter bauen, Led Anzeigen sowie Nokia SW > Display mit DsPic (12bit ADC) sowie 22bit ADC. > Ziel ist es 6 1/2 digit, werde aber auch probieren ein 8 1/2 digit zu > machen > und zwar mit einem 12bit DAC Das ist nicht besonders schwierig. Nimm einen 7107 und setze
Harald Wilhelms schrieb im Beitrag #2299732: > Das ist nicht besonders schwierig. Nimm einen 7107 und setze 3...5 > LED-Anzeigen mit Nullen dahinter. :-) Witzbold, aber nicht schlecht. MaWin schrieb > Es gibt 24 bit Wandler, wie LTC2400, nicht mal so teuer. Ich habe lieber einen dual slope als einen
-
Thread
Sharp GP2D02 Sensor auslesen mit CodeVisionAVR und einem AT90S8515
result <<= 1; //schiebs nach links if (VOUT) result |= 0x01; //setze das niedrigste bit, wenn VOUT high } VIN = 1; delay_ms(2); return result; anzeige(); } [/c] und ich schreibe in die anzeige() [c] void anzeige(void) { PORTA=0x55;
erst danach lesen result <<= 1; //schiebs nach links if (VOUT) result |= 0x01; //setze das niedrigste bit, wenn VOUT high VIN=passive;
-
Thread
Externer Oscillator / Configuration Bits
dsPIC33 wird an PIN 63 ein externer Quarz angeschlossen. Meine Frage ist: Muss ich das entsprechende Bit im TRIS Register auf Input setzen ? Im Datenblatt habe ich nur was von den OSCON bits gelesen. Vielen dank.
FOSCbits.POSCMD=0b01;//XT Crystal Nur komisch dass ich hier laut Datenblatt XT setzen muss für meine 8MHz, und bei den config bits wie ganz oben musste ich HS setzen. Ist das alles? Bzw erkennt der Compiler die 2 Register überhaupt nicht. Obwohl ich die entsprechende Datei vom PIC
-
Thread
Labor Netzteil
schon in betracht gezogen.. ala 19Zoll einschubrahmen ;) @Uwe was meinst du mit Sackhüpfen?? 15Bit bei 30V waehren 915,5µV schritte 16Bit bei 30V waehren 457,7µV schritte warum nicht die 16Bit voll ausnutzen (zumindest beim setzen??) DA Wandler gibt es sicher nicht direkt mit 15Bit?
logischen Handlungsablauf des Algo mit [Bücher/url] Quellenangaben, nicht im Stile von: ldi r16, 0xff ; setze alle bits was ich auch schon gesehen habe. Somit können andere es nachvollziehen - evtl. wechselt ja dann einer vom C51 zum AVR ;-) @Stephan: Solange keine Einigung über das Regelonzept steht,
-
Thread
DCF77 weiteres Vorgehen
.Pulslaenge > DCF_LOGIK_EINS_MIN) && (DCF77.Pulslaenge < DCF_LOGIK_EINS_MAX) ){ if ( (DCF77.BitCounter < 29) && (DCF77.BitCounter >= DCF_ZEITINFORMATIONSBITPOSITION) ) { DCF77.Minute += DCF_Bitwertigkeiten[DCF77.BitCounter-DCF_ZEITINFORMATIONSBITPOSITION]; } if ( (DCF77.BitCounter >= 30) && (DCF77.BitCounter < 36) ){ DCF77.Stunde += DCF_Bitwertigkeiten[DCF77.BitCounter-DCF_ZEITINFORMATIONSBITPOSITION-1]; } } [/c] Spart man sich das riesige Array
-
Thread
8086 Bitmanipulation
nichts darüber aus, ob hier mit Read-Modify-Write Cycle oder > mit direktem Zugriff auf die einzelnen bits gearbeitet wird/wurde Mal in die Details einer modernen CPU geschaut? Du kannst nur Bits setzen/löschen wenn der Register Wert durch die ALU gejagt wird.
> Mal in die Details einer modernen CPU geschaut? > Du kannst nur Bits setzen/löschen wenn der Register Wert durch die ALU > gejagt wird. ....nein.....
-
Thread
ATmega48 Security Bit Port Problem
Hi >Hallo ich habe ein Problem mit dem ATmega48, wenn ich die Fuse-Bits >setze damit er gegen das Auslesen geschützt ist funktioniert auch meine... Es gibt keine Fuse-Bits, die gegen Auslesen schützen. Und die Security-bits haben keinen Einfluss auf die Ports. Dein
Hi >Danke für die schnelle Antwort Spess53, es gibt sehr wohl sogenannte >Lock-Bits, die man auch setzen kann um den Chip vor dem Auslesen zu >schützen. Gut. Habe ich nach 13 Jahren AVR-Programmiererei wieder etwas gelernt. >Das die Lock-Bits nichts mit den Port-Pins zu tun
-
Thread
Pac Man mit dem ATmega8
LD ZL,X+ ;2 OUT Nullreg ;1 Takt 3 Lückenbit LPM r16, (Z) ;3 OUT r16 ;1 Takt 7 1. Bit LSL r16 ;1 NOP ;1 OUT r16 ;1 Takt 10 2. Bit LSL r16 ;1 NOP ;1 OUT r16 ;1 Takt 13 3. Bit ...usw. Also drei Takte pro Pixel, nur die Lücke hat vier
Intro-Screen), dürfte es reichen: 1. das HEX-File mit PonyProg in den ATmega8 zu flaschen. 2. die Fuse-bits so zu setzen, das der externe 16MHz Quartz genutzt wird. 3. die beiden Widerstände und das Videokabel abzuschließen. Die 'Joystick-Schalter' kann ich, nachdem ich ersteinmal ein Bild habe, ja immer
-
Thread
RST bei Buffernutzung
der sowieso nur einen String aufnehmen kann zu löschen, vulgo den String auf einen Leerstring zu setzen, genügt es das erste Byte davon auf '\0' zu setzen. Man muss nicht durch das Array durchgehen und jedes einzelne Byte auf '\0' setzen. (*) wie gesagt: scheinbar Du hast trotzdem einen Fehler.
zu setzen... THX für weitere antwort
-
Thread
inline ASM 64Bit Shift
dcf_struktur dcf77_daten; [/c] In der Empfangsroutine wird mit [c] dcf77_daten.dcf_bits = (dcf77_daten.dcf_bits >> 1); dcf77_daten.dcf_bits |= 0x8000000000000000; // Bit setzen [/c] (Das Bit wird natürlich nur bei empfangener 1 gesetzt, geschoben wird immer). Eigentlich bin ich eher angenehm überrascht von dem, was WinAVR da so erzeugt. Die 64Bit-Geschichte sieht allerdings schrecklich aus, spielt aber bisher zuverlässig. Meine Versuche, so auf die Schnelle den Shift und das Setzen des höchsten Bits per inline-ASM zu erledigen, sind daran
-
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
Fuses setzen Parallel auf die "alte" Tour
Hallo, kann man die Fuses parallel programmieren ohne Programmer, wenn man an die Entsprechenden Pins DIP-Schalter anschließt und den Takt per Prellfreiem Taster macht? Denke so hat man früher auch die Programme eingegeben. Im Datenblatt steht das Parallel ein Kommando eingegeben wird usw. Das ein ganzes Programm natürlich zuviel wäre ist klar, aber es geht ja nur um die Fuses.
-
Thread
DS1631 in 12bit genau auslesen
Habe ich bereits gemacht. Mir ist bewusst das ich die Registerbits R1 und R0 auf high oder low setzen muss, um die Auflösung der Messgenauigkeit zu ändern, allerdings ist für mich nicht aus dem Datenblatt ersichtlich wie ich es an den Sensor schicke, bzw. wie ich diese bits setze...
R0 in diesem CONFIGURATION REGISTER einzustellen, nur weiß ich nicht wie die anderen Register zu setzen sind. Kann sie ja nicht alle auf 0 setzen, oder? [pre] MSb bit6 bit5 bit4 bit3 bit2 bit1 LSb DONE THF TLF NVB R1 R0 POL* 1SHOT* [/pre] 00001000 also in Hex 08. [
-
Thread
TTL Signal Verarbeitung
stdlib.h> #include <avr/io.h> #include <avr/interrupt.h> #include "uart.h" volatile uint8_t getBit; ISR(INT0_vect) { getBit = 1; } int main(void) { DDRD = 0x00; // Port D als Eingang setzen PORTD = 0x01; // INT0 liegt an PD0 uart2_init(UBRR_BERECHNUNG(BAUD_RATE,F_CPU))
(1.Bit) == Flag(1.bit), dann Flag>>= 1, dann das nächste eingelesene Bit auf gleichheit prüfen usw. und wenn das bitpuffer == Flag ist dann die nächsten Bytes einfach einlesen.
-
Thread
Signalgenerator, Grenzen eines Atmega8
reduziert werden. Die Rundung erfolgt -falls überhaupt nötig- über die Addition des nächstniedrigeren Bits (bei 24Bit FTW und 8 Bit Tabelle: Bit15) Die eigentlich DDS-Schleife soll nicht in einer ISR, sondern in der Main (mit voller Geschwindigkeit) laufen.
nur kleine Frequenzen ausgeben, da reicht > Deine PWM-Ausgabe. Sonst sollte es schon ein 8 - 10-Bit-DAC sein, zur > Not R2R an einem Port. Ja, ich möchte einen 8bit Dac benutzen. Die Schaltung habe ich schon gebaut, das Programm ist bekannterweise noch zu optimieren. Ein 8bit dac hängt an
-
Thread
Honeywell Rondostat HR20E per AVR steuern und konfigurieren
Reading signature.. 0x1E 0x94 0x05 ..OK Leaving programming mode .. OK Nur bei: Reading fuse bits (low to high).. FAILED! Beim Setzen der FUSE bits bin ich mir aber unsicher, sieht bei mir ganz anders aus als bei \hr20\doc\fuses wir verwenden doch alle die Version 4.13 Build 571
Hier die LockBits
-
Thread
STM32G474, bit banding
Was genau schreibst Du zum Umschalten des Pins in die Adresse 0x420082B0? Das sollte 1 bzw 0 zum Setzen/Löschen des entsprechenden Bits sein. Das hier kennst Du vermutlich: https://www.mikrocontroller.net/articles/ARM_Bitbanding
auch ganze Ports atomar manipulieren (ANL, ORL, XRL, INC, DEC). Der AVR kann dagegen nur einzelne Bits atomar setzen oder löschen.
-
Thread
32 Bit Controller für Motion Control
bzw. aufgefallen: 1. Bitzugriff z.B. auf einen Port. Dort verwendet der Prozessor das sogenannte "Bit Banding". Damit sind aber mehrere Instruktionen notwendig, um ein Bit zu setzen/rücksetzen. 2. Er kann nicht 32-Bit immediate direkt in ein Register laden. Gibt es hier jemanden, der den Cortex-M3
so gelobt wird, das dann auch das "optimale" ist. Auf alle Fälle, nachdem ich diesen Code für ein Bit setzen gesehen habe, habe ich eben Zweifel bekommen. Vielleicht kannst Du auch das mit dem 32-Bit immediate beantworten. Der Arm kennt doch keine 32 Bit immediate. Wenn ich solch einen Wert in ein
-
Thread
STM32L152RC HSI
Hi also es sieht wie folgt aus: RCC->CFGR |= RCC_CFGR_SW_HSI (ist gleich zu setzen mit 0x00000001) Das bit ist gestzt. RCC->CFGR |= RCC_CFGR_SWS_HSI (ist gleich zu setzen mit 0x00000001) Das bit ist auch gesetzt. Das ergibt zusammen 0x00000005. Genau das was mir auch der
Wie setze ich die Bits den richtig? lg Mathias
-
Thread
mit AVR zählen -> 7-Segmentanzeige
grössenordnung 100nF) den zähler könntest du so ungefähr machen: TUER_1 und TUER_1_STATUS als BIT definieren und auf 0 setzen TUER_1_ZAEHLER als Byte, Word oder Long definieren und auf 0 setzen do TUER_1 = pinX.Y ' Tür abfragen, 0 zu, 1 offen if TUER_1 <> TUER_
------------------ Ddrd.5 = 0 'PD5 als Eingang setzen Dim Tuer_1 As Bit Dim Tuer_1_status As Bit Dim Tuer_1_zaehler As Byte Dim Sresult As String * 16 At &H64 Overlay Dim Result(16) As Byte At &H64 Declare Sub Anzeige Tuer_1 = 0 Tuer_1_status
-
Thread
Mega8: VQC10 LED-Matrix 5x7 Zeitmultiplex - Bestimmte Bits eines unsigned char auf Ports ausgeben
noch nach einer eleganten Möglichkeit das entsprechende Ausgabeport mit einer begrenzten Anzahl von Bits aus einem unsigned char zu setzen, ohne die restlichen Bits zurück zu setzen. - Leider gibt die Suchfunktion hierzu nicht allzu viel her. Beispiel: PORTD hat irgendeinen gesetzten Zustand. Jetzt
Datenbyte > verodern: > > [c] > PORTB &= 0xE0; > PORTB |= 0x15; > [/c] Die aufgeoderten Bits liegen aber nich in der Maske 0xe0. Ein zwischenzeitliches Ändern von PORTB wemeidet man über ine lokale Variable: [c] uint8_t portb; // Bits 5,6,7 löschen portb = PORTB & ~(0x7 << 5); // Bits
-
Thread
Attiny 4313 - Änderung des clock prescalers ohne Effekt
das ich zuerst CLKPS setzen muss und dann > CLKPCE. Also genau umgekehrt wie im ersten Post geschrieben. > Lasse mich aber gerne belehren. Übers.: "Das CLKPCE-Bit muss auf logisch 1 gesetzt werden, um die Änderung der CLKPS-Bits
der Prescaler auch nicht ändern) setzen und dabei muss, lt. Datenblatt, alle anderen Bits gleichzeitig 0 werden. da kommen die 0x80 her, das setzt nämlich nur das CLKPCE auf 1 und alle anderen zu 0. Dann hat man vier Zyklen Zeit den gewünschten
-
Thread
Hex Wert -> Dezimal an LCD ausgeben
miteinander kommunizieren können. Ich nenne dieses Register (eines der oberen, damit man "billig" Bits setzen und löschen kann, also r16...r23) meist "flags" oder "mode". Die 8 Bits können dann unterschiedliche Aufgaben signalisieren. Sie bekommen dann dementsprechende Namen. In der ISR wird das jeweilige
Hi Hannes... dann vergiss ich das mit dem 16 Bit Timer wieder. Also dann (fast) alles raus aus timer 0. Nur den Teiler erhöhen und wenn der Teiler auf 0 ist, ein Flag(register) setzen. Das mit der Tastenentprellung klingt auch gut. Ach Hannes
-
Thread
Daten vom UART am LCD ausgeben
Wie stellst du fest, dass nur 7 Bits ankommen? Bei üblichen Tasten auf dem PC ist das 8. Bit 0. Probiere mal öäü, wenn du ein gesetztes 8. Bit sehen willst.
einen ATMega8 also gibt's URSEL (steht ja auch im Datenblatt). Recht hast du. Bei ö, ä, ü sind 8-Bit vorhanden. Oder das 8-Bit ist gesetzt. Aber wieso wird das 8-Bit bei mir nicht angezeigt wenn es 0 ist? Wird das nie angezeigt?
-
Thread
Umwandlung von 16 Bit in 8 Bit
aufpassen, wo das Vorzeichenbit bei der long-Komponente liegt. Üblicherweise ist dies das höchstwertige Bit. HSB = Höchstwertiges Bit bzw. Byte, wird meistens jedoch als MSB (Most Significant Bit) bezeichnet. LSB = Niederwertigestes Bit bzw. Byte (Lowest significant Bit). Zur Erklärung: Wenn du die
> HSB = Höchstwertiges Bit bzw. Byte, wird meistens > jedoch als MSB (Most Significant Bit) bezeichnet. > LSB = Niederwertigestes Bit bzw. Byte (Lowest > significant Bit). Klar, nur wo liegt dieses im Array? ist x.u8
-
Thread
Hat jemand Erfahrung mit dem 2,4GHz-Transceiver RFM70?
(Bit5, TX_DS im Status Register auf "1" setzen) usw... 1. 2. 3. 4. .... Für Reichweitentests, bei denen das Auto_ACK evtl. nicht mehr zurückkommt schreibe ich mit dem Kommando W_TX_PAYLOAD_NOACK. Dadurch
irgendwie nach der eigentlichen Init, die das Modul da in den Empfangsmodus schicken sollte, das PRX-Bit in CONFIG nochmal setzen muss. Jetzt klappts jedenfalls und bei meinem Empfänger kommt munter "Hello World!" an. Dann kanns mit dem eigentlichen Projekt eigentlich so langsam auch bei mir losgehen.