-
Thread
Welchen Parameter muss ich nutzen, um mit Arduino und DS18S20 ein Relais zu steuern?
Manfred schrieb im Beitrag #5707673: > Schreibe einen einfachen Ablauf: > Definiere Port > > Setze Port high > Mache 2 Sekunden Pause > Setze Port low > Mache 2 s Pause > und wieder auf "Setze Port high" > > Wenn das Relais nicht schaltet, nehme das Meßgerät in die Hand und > ergründe die
Post oben. >Manfred schrieb: >> Schreibe einen einfachen Ablauf: >> Definiere Port >> >> Setze Port high >> Mache 2 Sekunden Pause >> Setze Port low >> Mache 2 s Pause >> und wieder auf "Setze Port high" >> >> Wenn das Relais nicht schaltet, nehme das Meßgerät in die Hand und >> ergründe
-
Thread
16 Bit Timer für Funkuhr
Servus, also wir haben folgendes Problem. Wir wollen eine Funkuhr bauen. Die Antenne und alles läuft schon. Bei der Dekodierung des Signals stoßen wir jedoch auf ein Problem. Wie bringen wir unserem Timer bei, dass er jede Millisekunde einmal auslöst und eine Variable incrementiert. An unserem Oszi haben wir nie die richtige Zeit. Hier der Code: .include "m16def.inc" .def ms=r17 .org 0x0000 rjmp main .org 0x10 rjmp timer1_o main: ldi r16, LOW(RAMEND) out SPL, r16 ldi r16, HIGH(RAMEND) out SPH, r16 ldi r16, 0b00001000 out DDRD, r16 ldi r16, 0b10001000 out PORTD, r16
-
Thread
I2C mit ATtiny 0/1-series (z. B. ATtin817)
Master-Read auch abschalten bzw. ganz außen vor lassen und sein ACK konventionell über die Command bits senden.
Naja wir sind hier nicht bei NXP oder AMD. Schau mal in die Erklärung des BUSERR Bits im Datenblatt!
-
Thread
Wie schreibt man Binärzahlen?
oder das ganze auch achtstellig definieren. /Einfacher/ aber wäre es, sich auf $Körperteil zu setzen und die 16 Bitkombinationen eines 4-Bit-Nibbles auswendig zu lernen.
> > /Einfacher/ aber wäre es, sich auf $Körperteil zu setzen und die 16 > > Bitkombinationen eines 4-Bit-Nibbles auswendig zu lernen. > Auswendig lernen ist aber eigentlich Käse. Besser versuchen, zu > verstehen, wie Binär-, Dezimal- und Hexadezimalsystem
-
Thread
Warteschleifen in C für Atmega 8
clearen TCNT2 = 0; // Setze Counter auf 0 TCCR2 |=(1<<CS22)|(1<<WGM21); // 16MHz/256 - CTC-Mode loop_until_bit_is_set(TIFR, OCF2); // warte, bis der Timer angekommen ist TIFR |= (1 << OCF2
15625 gezählt hat dann Ereigniss auslösen und clearen TCNT2 = 0; // Setze Counter auf 0 TCCR2 |= (1<<CS20)|(1<<CS22)|(1<<WGM21); // 16MHz/15625 - CTC-Mode loop_until_bit_is_set(TIFR, OCF2); // warte, bis der Timer angekommen ist TIFR |= (
-
Thread
24bit ADC Schaltung qualifizieren
Schaltungsaufwand !bei 24bit!.. Genauigkeit der Clock spielt bei 24bit sicher auch eine nicht unwichtige Rolle..
Was ? Einen 24bit ADC selbst bauen, mit 10Sample ? Aeh ja. Viel Glueck. Da wird's dann mit vielleicht 12 bit Schluss sein...
-
Thread
Vector auffüllen
auf null.. wie kann ich pro takt immer ein bit in den Vector setzen.. hab schon an eine for schleife gedacht aber beim bit setzen komme ich auf keinen grünen zweig.. danke schonmal
www.lothar-miller.de/s9y/categories/49-RS232-IO > hab schon an eine for schleife gedacht aber beim bit setzen komme ich > auf keinen grünen zweig.. Das ist garantiert nicht nötig. For-Schleifen führen einfach zu paralleler Hardware... > und setze ihn dann wieder auf null.. Das brauchst du nicht
-
Thread
Fuse-Bit's und Assembler
Hallo, gibt es eine Möglichkeit in Assembler die Fuse-Bit's zu setzen bzw. zu löschen !? In Bascom geht das mit $prog. Ich möchte den RESET-PIN eines ATtiny4 als IO nutzen, im AVR-Studio kann ich den Haken RSTDISBL setzen. Diese möglichkeit ist für größere Stückzahlen umständlich, daher suche ich eine Möglichkeit direkt im Assembler-Code das Fuse-Bit zu ändern. Danke ! MM
-
Thread
AVR Studio 4 v4.18
COMPA_vect) {Anweisungen...}"? Das is die eine Möglichkeit. Zur Info, den "Stop Watch" kann man auf 0 setzen seh ich grad :-) Was ist jedoch mit dem Bit "I" im SREG, kann man auch nach diesem gehen, also Zeit auf t=0us stellen wenn Interrupt-Bit gesetzt, dann bis zum nächsten Setzen warten und Zeit ablesen
>also Zeit auf t=0us stellen wenn Interrupt-Bit gesetzt, dann bis zum >nächsten Setzen warten und Zeit ablesen?! Oder hat das Statusbit hier >nix mit zu tun? Das I-Bit im SREG erlaubt bzw. verbietet Interrupts. Es wird nicht gesetzt oder gelöscht
-
Thread
GCC: Pin toggeln in einem Takt?
, versuchst du daher unter Umständen mehrere Bits auf einmal auf 1 zu setzen und toggelst daher auch mehrere Bits.
tatsächlichen Zustand des Pin Registers vor der > Operation, versuchst du daher unter Umständen mehrere Bits auf einmal > auf 1 zu setzen und toggelst daher auch mehrere Bits. Das war in früheren Zeiten auch meine Befürchtung bis ich den entsprechenden Abschnitt im Datenblatt gelesen habe (s. mein letzter
-
Thread
Gibt es etwas wie "(0 << BIT7)"?
diese Umkehrung macht. Das wiederrum macht das Symbol '~'. Aber. Wenn du sowieso in Assembler nur 1 BIt an einem Port setzen bzw. löschen willst, warum benutzt du dann nicht ganz einfach die Spezialbefehle, die Atmel ihren AVR Prozessoren spendiert hat? Siehe [[AVR-Tutorial]] (0<<PD4) ist soweit
wende ich das "Schieben" einer Null wegen der Lesbarkeit des Codes trotzdem an. Zum Beispiel beim Setzen der Prescaler-Bits im Timer: sbr temp, (0<<CS22)|(0<<CS21)|(1<<CS20) ;Vorteiler So sieht man auf den ersten Blick, welche Bits gesetzt sind und welche nicht. Außerdem lassen sich schnell
-
Thread
STM32 USART1 IT Bytes verlust
MMM schrieb im Beitrag #7351522: > Wenn dies > der Fall ist, dann setze ich darauf einen Breakpoint. Vergessen zu erwähnen: Testwiederholung: Breakpoint entfernen, kurz laufen lassen und neu setzen. Damit auch niemand auf die Idee kommt die verlorenen Bytes sind vom
Bit. Bei Start + 9Bit Daten + Parity + Stop sind das 12 Bitzeiten. Ist der Sender nur etwas zu schnell, geht das nächste Startbit verloren. Ein weiteres Stoppbit gibt dann deutlich mehr Luft für Timingabweichungen
-
Thread
TCNT0 anhalten oder "einfrieren"
Int-Variable ist aber genau das Problem: wo zählst Du die denn hoch? Ich mach das mit dem erwähnten 8-Bit Timer und einem Überlaufzähler. Genau wie Du setze ich bei steigender Flanke die Werte auf Null, und werte das bei fallender Flanke aus. Läuft während dieser Aktion der Timer über, stimmt das Ganze
probier mal in C, mache ja eigentlich mit FastAVR-Basic. Ich verwende einen Mega8 im MCUCR das Bit2(ISC10) setzen : Interrupt1 bei jedem Flankenwechsel SIGNAL (SIG_INTERRUPT1) // vector 2 { if (pind.3) //steigende flanke löste int1 aus { pulscounter=0; } else //fallende Flanke
-
Thread
LCD initialisieren mit ATmega8, kann mal einer draufschaun?
fürs bessere hinsehen weggelassen. ldi temp, 0b00000011 ;Display 8 bit out lcd_port, temp ;Daten aufs port legen ldi temp, 0b10000000 ; Enable auf high setzen out lcd_port, temp ; Aufs port schreiben Fällt dir da gar nichts auf? Klar, Enable wird high
Hi Du überschreibst um ein Bit zu setzen, den gesamten Port. Mag zwar jetzt funktionieren. Aber wenn da noch andere Sachen dranhängen geht das nicht mehr. MfG Spess
-
Thread
Einstellung Tastgrad bei Fast PWM
können um darin nachzusehen, welche Bits du setzen musst.
also, jetzt hab ich nochmal nachgeschaut. das WGM 12 Bit bei TCCR1A schaltet meiner meinung nach den CTC modus des timers 1 ein. da ich diesen modus nicht brauche sondern lediglich eine LED mit PWM ansteuern will, brauche ich das WGM12 bit auch nicht setzen
-
Thread
Signal für eine gewisse Zeit setzen in C (8051)
nicht mit Interrupts, Timern u.ä. Wie kann ich z.B. für 40s über "i2C_setbyte" einen Zustand setzen und ihn danach wieder auf "LOW" setzen? Vielen Dank im Voraus. MfG, Bastian
nicht mit Interrupts, Timern u.ä. > > Wie kann ich z.B. für 40s über "i2C_setbyte" einen Zustand setzen und > ihn danach wieder auf "LOW" setzen? > > Vielen Dank im Voraus. > > MfG, > Bastian 1. i2C_setbyte(1); 2. 40s "warten" oder was anderes tun 3. i2c-setbyte(0); Um so eine Wartezeit
-
Thread
anfänger bei assembler
rjmp xyz rjmp Beispiel cbi - lösche BitX im I/O PortX zu '0' sbi - setze BitX im I/O PortX zu '1' Beispiel: sbi PORTB,PB4 Übrigens: [avrasm] out PORTB3, r16 // <<---- müsste Error-Meldung bringen [/avrasm] sollte nicht
dass dieses 'Spezialregister' 'magisch' auf die Ausgabepins gespiegelt wird. Um einen Ausgang zu setzen/löschen genügt es, in diesem Register ganz einfach das betreffende Bit zu setzen. Und: Wenn ich will kann ich mir da auch 80 Ausgangsleitungen machen, OHNE dass sich am zugrundeliegenden Mechanismus
-
Thread
Angebot leiser PC. Bitte prüfen.
Grafigkarte mit drin. Nur das der I3 beim nichts tun (office) weniger strom als der AMD braucht. > 64 Bit macht kaum Sinn welchen Sinnvollen grund gibt es heute noch auf 32bit zu setzen. Bei 64bit kann man in einem Jahr einfach noch mal 4GB dazu stecken ohne das system neu aufzusetzen > Bei den Festplatten
AMD dabei gerade die Hälfte. Es gibt also absolut keinen Grund, den Intel zu nehmen. >> 64 Bit macht kaum Sinn > welchen Sinnvollen grund gibt es heute noch auf 32bit zu setzen. Bei > 64bit kann man in einem Jahr einfach noch mal 4GB dazu stecken ohne das > system neu aufzusetzen Wenn
-
Thread
Einfacher Osziloskop - Bascom
@Ronny: Wenn man 10 Bit braucht ist das sicher richtig, aber wenn einem 8 Bit reichen kann man den ADC auch gerne schneller betreiben. Ich bastel hier gerade ein ähnliches Projekt und habe mich auf 7Bit Auflösung beschränkt
. Wenn du 8Bit aus ADCH auslesen willst musst du dafür vorher das ADLAR Bit setzen, sonst stünden in ADCH nur die oberen 2 Bit.
-
Thread
Variablengröße 10-Bit-Integer gesucht
> Teile ich die max. 1023 auf 4 Variablen (8-Bit) auf 1023 kann mit 10 Bit dargestellt werden. 4 Variablen zu je 8 Bit macht aber in Summe 32 Bit. Du willst mir doch jetzt nicht erzählen, dass es effizienter ist, 10 Bit in insgesammt 32 Bit
> Ich habs jedenfalls gleich verstanden, was er meinte: > > 10 Bit in 16 Bit ergibt 37% Verlust > 3 Worte a 10 Bit in 32 Bit aber nur 6%. Nur hat er das nicht implementiert :-) Er hat 1 Wort a 10 Bit in 32 Bit > Ich denke aber eher, die Optimierung sollte besser
-
Thread
PIC18F25k80 Probleme mit dem ADC
Analogeingänge auf Digital umschalten ANCON1 = 0x00; // Bis auf AN0 ADCON0bits.ADON = 0b1; //Analogeingang definieren ADCON0bits.CHS = 0b00000; ADCON1bits.VCFG = 0b10; //Analoge Referenz festlegen ADCON1bits.VNCFG = 0b0; ADCON1bits.CHSN = 0b000;
TRISB = 0x00; // Bis auf den analogen Eingang TRISC = 0x00; ADCON0bits.CHS = 0b00000; //Analogeingang definieren ADCON0bits.ADON = 0b1; ADCON1bits.VCFG = 0b10; //Analoge Referenz festlegen ADCON1bits.VNCFG = 0b0; ADCON1bits.CHSN = 0b000;
-
Thread
Temperatursensor DS1621 über I²C ansteuern
Was meinst du mit "durchlaufen"? Wenn ich das Bit in 1SHOT auf 0 setze, dann würde das ja eine ständige Messung bedeuten und DONE würde nie 1 werden, oder?
T protocol. If 1SHOT is “0”, the DS1621 will continuously perform temperature conversions. This bit is nonvolatile. Das heißt, 1SHOT auf 0 zu setzen würde bedeuten, dass die Messung STÄNDIG vonstatten geht, falls ich das richtig verstande habe.
-
Thread
Problem mit Atmel AVRJTAGICE mkII
dein eigentliches Problem scheint also gelöst. Da du oben aber das mit dem JTD-Bit und dem aussperren angesprochen hast, ein kleiner Tip: Man kann dieses Bit auch per Software im MCUC-Register setzen, ein umprogrammieren der Fuses ist also nicht nötig. Wenn man dann noch einen
dann noch einen Pin frei hat, könnte man dieses beim > Programmstart abfragen um es immer noch setzen zu können. Muss man eigentlich gar nicht. Das Setzen des Bits wird nur wirksam, wenn man es zweimal direkt hintereinander ausführt. Will man debuggen, setzt man einfach einen Breakpoint auf
-
Thread
Suche gutes LCD/LED Display-System mit leicht verwendbarem Framework für meine Bachelor-Arbeit.
Displaycontroller Autoinkrement können muss man nicht jede Adresse vor der Pixelausgabe wieder neu setzen, das war gemeint.
mit spi angesprochen > werden kann. Warum? Wenn man genügend Portpins frei hat so ist der 16-Bit Parallelbus durchaus vertretbar. Dann kann man alle 16 RGB-Bits mit nur einem Clock raushauen. Das geht deutlich schneller als SPI.
-
Thread
Bit value _BV ??????? AVR-libc
wenn ich es richtig verstanden habe, steht in der AVR-libc, das man mit diesem macro "_BV" einzelne Bits in besonderen Registern setzen kann, z.B. für USART : UCRSB = _BV(Bit-name);. Wird Bit dann logisch high? Die Frage hört sich zwar blöd an (setzt Bits = logisch high), aber dann lese ich weiter
); // bit setzen register &= ~( 1 << Bitnummer ); // bit löschen ob man das jetzt so schreibt, oder ob man es so schreibt register |= _BV( Bitnummer ); register &= ~ _BV( Bitnummer ); schenkt
-
Thread
Billiges Cortex-M4-Board STM32F4DISCOVERY jetzt erhältlich
-bit or 8-bit accesses to external 16-bit or 8-bit devices" Hintergrund ist der gewaltige Preissprung zu Fertiglösungen wie STM3240G-EVAL evaluation board; ...hier mal die Zusammenstellung der
erhardd schrieb im Beitrag #2603047: > Reference manual meint dazu grundsätzlich: > "Translation of 32-bit wide AHB transactions into consecutive 16-bit or > 8-bit accesses to > external 16-bit or 8-bit devices" ... ich nehme auch an, das sich das "consecutive" hier auf den -blockweisen- Zugriff (
-
Thread
Bit als Ausgang definieren
PortA_DDR=1x00; Wenn ich das richtig verstehe, will er in diesem Beispiel PortA.0 auf Ausgang setzen und PortA.1 auf Eingang. Wenn ich das so eingebe, kommen bei mir Fehlermeldungen. <siehe Bild>
nein bei c-control muss man Port_DataDirBit(Bit,I/O) eingeben. das is doch der gleiche befehl wie in basic prog. kompletter schwachsinn oder?
-
Thread
AtTiny13 & 2xADC
wenn man sie nicht benötigt. Das Problem vorhin bestand daraus daß beim ersten Start des ADC das Setzen des ADSC Bits den AD Converter initialisiert, so im DB des Tiny13 nachzulesen. Wenn man dann dieses Ergebnis dann hernimmt und sofort in eine Endlosschleife rennt, braucht man sich über die Nichtfunktion
> Das ADSC-Bit setzte ich nicht, Und wie soll der ADC arbeiten, wenn Du ihn nicht (durch Setzen des ADSC-Bits) startest??? > ich lese es aus Das hat nur Sinn, wenn Du es zuvor gesetzt hast. > - was mir
-
Thread
Wittig(welec) DSO W20xxA Open Source Firmware (Teil3) Gesperrt
16 bittig. D.h. doch nach meinem Verständnis, bei einem Range von -2,5...+2,5 dass bei - 14 Bit 0x0000 = -2,5V und 0x3FFF = +2,5V -> 0x1FFF = 0V - 16 Bit 0x0000 = -2,5V und 0xFFFF = +2,5V -> 0x7FFF = 0V oder andersherum bei Nullansteuerung des 14 Bit DAC (8191 = 0x1FFF) gibt der 16 Bit
sollten sich beide LTC26x2 absolut gleich verhalten, es braucht nichts verschoben zu werden. - 14 Bit 0x0000 = -2,5V und 0x3FFF = +2,5V -> 0x1FFF = 0V - 16 Bit 0x0000_ = -2,5V und 0x3FFF_ = +2,5V -> 0x1FFF_ = 0V der Unterstrich markiert 2 zusätzliche Bits, die bei 14bit egal sind, bei 16bit nicht
-
Thread
Hackbarer(?) 21 EUR Quadcopter
SWD_DIO_PIN, buf & 1); pin_write(SWD_CLK_PIN, 1); } } static void read_bits(size_t bits, int silent) { uint8_t val = 0; pin_configure(SWD_DIO_PIN, SWD_MODE_INPUT); size_t bit; for (bit = 0; bit < bits; ++bit) { pin_write
gesetzt. ->connect-program_fuses_to_protect-erase-disconnect Verbinden, Read protect fuse setzen und disconnt. Read protect war nicht gesetzt. Bit 0- SWDIO Bit 1- SWDCLK Bit 2- Reset (wird nie ausgelöst)
-
Thread
Shiftregister Programmieren M74HC595
Schiftregister ist an meinen ATmega16 angebunden. Ich verwende die ersten 4 Pins des PortDs. Dabei ist Bit0 der takt und Bit3 ist SI. Bit1 ist RCK und Bit2 ist G.(Meine ich. Ist schon länger her) Mit dem Nachfolgenden Programm kann ich alle Pins des Schiftregisters auf 1 oder 0 setzen. Programm1: ___
Damit kann ich die Ausgänge entweder auf 1 oder 0 setzen. Das Programm Läuft so, dass ich die Bits des PortD mit dem Register verbunden habe. Dabei ist Bit0 der Takt und Bit3 ist mit den Daten gefüllt. Die anderen beiden Pins sind für die Aktivierung der
-
Thread
ATmega32u4 OCR1BH nicht setzbar
drangesetzt weiterzuarbeiten und hab ein paar ungereimtheiten festgestellt..... Wenn ich TCCR1A auf 0 setze werden zwar die Compare-Werte richtig gesetzt, aber der Timer läuft gar nicht. Die frage ist: Wieso? Laut Datenblatt sind die bits 2-7 des TCCR1A für Output modi, was ich aber nicht brauche und Bit´s 0-1 sind Fast-PWM, was ich auch nicht brauche. Ich setze in TCCR1B das CTC-Bit (Bit3) und Vorteiler auf 64, also insgesammt B00001011 ausgeschrieben. Unter diesen werten wird die Compare-ISR aber nichtmehr ausgelößt... Wofür ein Haus das verrückte macht
-
Thread
G-LCD bei Pollin
Kann man nicht die 4 Bits von ein andere trennen, beiden Clock signalen gleichseitig ansteurn und als en normales 8 bit Dual Scan benutzen ?
Bei einem FF pro Makrozelle braucht man min. folgendes: - 8 FF: 8Bit Daten für Multiplexer zum LCD - 19 FF: 16Bit Adresszähler für Leseop. (15Bit+1Bit Chip select) + 3Bit Bitzähler für Multiplexer - 8 FF: 8Bit Datenregister für Schreibop. - 16 FF: 15Bit Adressregister
-
Thread
8 Bit Eingabe um ein Bit erweitern
Wenn die Eingabe 8 Bit hat dann hat sie wohl immer eine gerade Anzahl an Bits weil 8 eben nunmal gerade ist! Oder meinst Du, Du möchtest die Anzahl der Bits auswerten, die "1" sind!? Welchen Sinn hat es, aus 8 Bit 9 Bit
Dazu musst du deine 8-Bit Daten erstmal in einer 16 Bit Variable/Register speichern und per [[Bitmanipulation]] das 9. Bit entsprechend setzen.
-
Thread
THT im Hobbybereich, hat das noch Zukunft? Gesperrt
Spruch dient, zumindest in der SW-Entwickkung, allzu oft als Begründung für unnötiges Optimieren, für Bit-Gepfriemel, für obfuscated code.
akzeptierst offenbar immer noch nicht, dass andere für sich – auch im Hobby – oft andere Prämissen setzen als du.
-
Thread
ASM code problem
r16, 0b00000000 ; PortA = Eingangsport out DDRD, r16 main: sbic PIND, 0 ; wenn Bit PIND - 0 auf 0 ist, dann überspringe den rjmp rjmp portb_one sbi PORTB, 0 ; Bit 0 auf 1 setzen cbi PORTB, 1 ; Bit 1 auf 0 setzen rjmp main portb_one: cbi PORTB, 0 ; Bit 0 auf 0 setzen sbi PORTB, 1 ; Bit 1 auf 1 setzen rjmp main [/avrasm]
-
Thread
AVR: zwei Schrittmotoren mit einem Timer
macht über seine Comparematches das Timing für die Schritte. In den Timer1 ISR wird: das FOC2x bit gesetzt (erzeugt ein Toggle vom Timer2 zum Motor) OCR2xy 2µs, oder wie lange auch immer der Puls dauern soll, höher als TCNT2 setzen. Motorpin wird dann zurückgetoggelt seinen eigenes OCR1xy für nächsten Puls setzen. Wird interessant, ob man die Timings, die richtigen Pegel beim Toggeln, das Ein/Ausschalten des Motors über die COM2xy Bits und keine extra Schritte bekommt *grins*
-
Thread
Einzelbits in Byte Namen zuweisen und auswerten
Hallo, wie kann ich in C die 8 Bits eines Bytes mit Namen versehen und diese dann gezielt mit dem Namen lesen, setzen, löschen? uint8_t Status; Status soll bestehen aus: Platzhalter0 für bit0 Platzhalter1 für bit1 ... Platzhalter7 für bit7 Damit ich dann das Bit der Übersichtlichkeit mit Status.Platzhalter x lesen, setzen, löschen kann? Beispiele: Status.Platzhalter1=0; // löscht Bit1 aus Byte Status if (Status.Platzhalter0==
-
Thread
Reinitialisieren von Registern beim ATtiny841
welches zuerst gesetzt werden muß, um dann die Änderung für 4 CPU-Zyklen freizuschalten. Und manche Bits müsen mit 1 beschrieben werden, um sie auf 0 zu setzen.
dafür gibt es ein Statusbit, um es zu erkennen. Gerne gemachter SW-Fehler, erst das SPI als Master setzen und danach /SS als Ausgang.
-
Thread
TOP2049 programmer opensource software
mich mit dem Patch und QEMU durchwursteln. Ich werde mir das zumindest mal auf meine ToDo Liste setzen.
nicht ganz:P) für attiny25/45/85 HV programming. Konnte zwar solange herumpatchen bis attiny13 HV bit file mit dem attiny85 ging, nur leider fehlte mir immer noch ein bit, nach ein paar stunden genug gehabt und stange attinys bestellt ...
-
Thread
Servo mit 8bit Timer
da ich den Timer 1 meines Atmega für die input capture Funktion brauche, möchte ich nun mit dem 8bit Timer mein Servo ansteuern. Meine grundlegenden Überlegungen dazu waren, dass ich alle 0,004ms einen Interrupt auslöse und dabei eine Zählvariable hochzähle mit der ich den 1-2ms Impuls erzeuge und
: ich dachte, ich hätte das so im Artikel gemacht. Statt dessen ist da ein CTC Modus mit OCR neu setzen)
-
Thread
Assembler-Verständnisproblem beim attiny13a
#7801574: > Der Timer hat Kontrolle über den Pin und kann ihn mit COM0A0=1 und > COM0A1=1 nur setzen. Dann haben aber SBI/CBI auf den Portpin keinen > Einfluss mehr. Dafür gibt es auch die Bits FOC0A, FOC0B. Damit kann man ein sofortiges Compare Match erzwingen und so die Ausgänge setzen. "The OC0A output is changed according to its COM0A1:0 bits setting."
-
Thread
Bitoperationen Zusammenfassen
Hallo! Ich versuche mich gerade an die Programmieurng von AVRs zu gewöhnen. Um ein Bit zu setzen ist nach allem, was ich in diesem Forum lese, die Form DDRC |= (1<<DDC5); DDRC |= (1<<DDC6); DDRC |= (1<<DDC7); anzuwenden, was sich zusammenfassen läßt in DDRC = (1<<DDC5)|(
noch benutzen. Also schreibe ich PORTC = 0x02 um in PORTC |= 0x02 um Bit 1 zu setzen und PORTC &= ~ 0x02; um Bit 1 auf 0 zu bringen. Das ist überschaubar, solange der Zustand, den das Bit bekommen soll bekannt ist. Bei PORTC = (cmd >> 7) Ist er aber in cmd eingeschlossen
-
Thread
SPI funktioniert nur mit Tastkopf
A. K. schrieb im Beitrag #2979014: > Dann wär das Programm vielleicht interessant. Beim Slave setze ich im CR1-Register das SoftwareSlaveManagement-Bit (Bit 9), sowie den Prescaler, gemäß Datenblatt: "set the SSM bit and clear the SSI bit in the SPI_CR1 register" Beim Master zusätzlich noch das
Jürgen Ungerer schrieb im Beitrag #2979070: > Beim Slave setze ich im CR1-Register das SoftwareSlaveManagement-Bit > (Bit 9), sowie den Prescaler, gemäß Datenblatt: "set the SSM bit and > clear the SSI bit in the SPI_CR1 register" > > Beim Master zusätzlich
-
Thread
STM32 F746zg nucleo und ILI9488 TFT per SPI langsam ?
schrieb im Beitrag #4879003: > Im Falle eines TFTs mit SPI müssen jedoch für das > einzelne Pixel 16-Bit Worte geschrieben werden, also > alternierend Low Byte / High Byte. Das kann die DMA Maschine > aber nicht leisten. Da war ich ganz froh, das der STM32 das kann (16 Bit SPI und 16 Bit DMA). Sonst
lohnt sich DMA schon oft bei kleinen Datenmengen. Bei 20MHz SPI kann eine 180MHz-MPU während eines 16-Bit-Transfers (ein Pixel) schon etliche Befehle ausführen. Erst recht gilt das für die 216MHz F7 oder gar die 400MHz H7 MCUs. Der Overhead bei DMA beschränkt sich ja meistens auf das Setzen vom CS, der
-
Thread
Zeitgesteuerter Ablauf mittels einer "State Mashine"
es sein das in einem ungünstigen Zeitpunt ein Interrupt ausgelöst wird und danach irgendwie dieses BIT gelöscht wird? Das ganze Programm läuft mal 2Std,4Std,8Std,24Std,48Std ohne Probleme und dann ist dieses Bit gelöscht. Nun gut ich könnte in der for(;;) Schleife reinschreiben das ich das Bit setze
das das Bit das signalisiert das ein neuer Ablaufwert gesetzt wurde fehlt und das setzten ist mit den Code unten. Dieser ist nicht in der ISR und ich denke das es wie oben schon beschrieben wurde nur beim setzen
-
Thread
[Selbstbau CPU] Welche Befehle machen eine CPU "praktisch"?
haben auch eine Menge an Befehlen die ich persönlich als unnötig empfinde. Zum Beispiel "SBR" (Set bit in register). Ein Bit setzen macht man doch normalerweise sowieso mit einem bitweisen ODER, oder? Oder die ganzen "branch if xxxx" Befehle. Das könnte man doch einfach mit einem "branch if status
Barrel-Shifter (der mehr als eine Position auf einmal schieben kann), rotieren oder ein SHR, wo das vorderste Bit repliziert wird (für 2er-Komplement praktisch) Befehle um einzelne Bits zu setzen/löschen braucht man nicht zwingend. Wenn gerechnet werden soll braucht es mindestens die Addition mit Carry-Flag
-
Thread
Wieder mal Tastenabfrage geht das auch so?
zwei Ports habe Da kann man alle Tastenvariablen auf uint16_t aufbohren und beide Ports zu einem 16Bit-Wert kombinieren. Oder sparsamer, die entsprechenden Bits mit AND/OR/SHIFT auf einen 8Bit-Wert kombinieren. Peter
> Da kann man alle Tastenvariablen auf uint16_t aufbohren und beide Ports > zu einem 16Bit-Wert kombinieren. > > Oder sparsamer, die entsprechenden Bits mit AND/OR/SHIFT auf einen > 8Bit-Wert kombinieren. > 4 Pins von einen Port und einer vom anderen, da ist der Vorschlag mit der
-
Thread
Fusebits beim Attiny2313 richtig setzen
nicht vorhanden. also möchte ich den Internen aktivieren. wie muss ich die Fusebits beim PonyProg setzen? Danke
Es gibt keinen int. Quarz. Das ist ein RC-Oszillator. Die Fuse-Bits stehen im Datenblatt. Hilfe von Gaul-Prog. anschauen.
-
Thread
Zeigt her Eure Kunstwerke! Gesperrt Bilder
. klar das interface ist folgendermassen: -16 bit bus ueber rb0-15. -3 steuer leitungen. -um die adresse zu setzen. -daten zu schreiben/lesen -kommando leitung die unter anderen einstellt in welchen buffer geschrieben wird, welcher buffer
bit 3 wird 0x40 + 0x40 = 0x80 Timer-Counts dargestellt bit 4 wird 0x40 + 0x80 + 0x40 = 0x100 Timer-Counts dargestellt. Damit habe ich 8 Zeitscheiben die jeweils den 5 Bits zugeordnet sind und kann so