-
Thread
Problem mit UART?
>Mein Mikrocontroller hat einen 10MHz Takt und Signal ist 8.Bit + >Parity-Bit Parity is not supported by the hardware, but can be implemented in software and stored as the ninth Bist du sicher das du das Parity Bit brauchst?
hallo holger Ja ich benötige leider ein parity Bit. Ich kann das Parity bit im TX Statusregister setzen das ist kein Problem. Wenn ich aber meinen Controller Debugge und im Inerrupt für den Recive Buffer einen Breakpoint setze, erreiche ich diesen
-
Thread
RFM12 Statusabfrage
von einem Mega8. für das Status abfragen einen Software SPI (oder kann man 2x auslesen für die 16Bit?) Kann mir jemand bitte einen Tipp geben? Danke!
meine neue an. Es ist natürlich wie Ziegenpeter schreibt: 1. 0x00 senden 2. SPDR einlesen (Bit15-Bit8 vom Status) 3. 0x00 senden 4. SPDR einlesen (Bit7-Bit0 vom Status)
-
Thread
krumme Frequenzen aus 50Mhz erzeugen
[/c] Wenn der Takt vom 50Mhz Osc am FPGA high wird... wenn der Takt PHI2 high wird... setze den Ausgang phi2short auf HI endif wenn der Zähler cnt6 >= 9 ist (sind 180ns vergangen) setze den ausgang phi2short auf LOW setze den Zähler cnt6 auf 0 ansonsten erhöhe den zähle cnt6
( 4 % ) Total registers 109 Total pins 76 / 89 ( 85 % ) Total virtual pins 0 Total memory bits 0 / 119,808 ( 0 % ) Embedded Multiplier 9-bit elements 0 / 26 ( 0 % ) Total PLLs 0 / 2 ( 0 % ) Fmax 101,35MHz bei 50MHz Quarz Ist im SLOW-Mode (?) Mail ist unterwegs...
-
Thread
Automower G3 mit USB Diagnoseport fernsteuern?
12:40 02[09] 81 df 07 08 08 04 00 00 00 -> 03[06] 00 df 07 08 08 04 datum aud 8.8.15 formatbyte: bit0 1-12h/0-24h, bit1+2 0-JMT/1-MTJ/2-TMJ, 2015. 8. 8. fo 02[09] 82 07 04 0f 00 14 01 04 00 -> 03[09] 00 07 04 0f 00 14 01 04 00 sprache DE Gruß Christian
erstellen damit man den nicht immer aufschrauben muss. Das Regen Problem kann man ja mit evtl Timer setzen oder Home setzen dann starten lösen, solange die Klappe unten ist. Ich müsste es dann mal probieren. Oder gibt es einen "PARKEN" Befehl?
-
Thread
Gibt es einen Bit-Aufsatz für ein Potentiometer?
hinüber oder festgefrohren. Also bleibt mir als einzige Idee mit einem speziellen Schraubendreher Bit das Potentiometer wieder zu lockern. Gibt es sowas? Wie im Bild ist es leider ein Zylinder mit einer abgeschliffenen Seite. Mir wäre nicht bekannt, dass es sowas gäbe. Danke euch!
ganze etwas kritischer, auch, wenn da potenziell Netzspannung dran ist. Ich wollte alles daran setzen ein Einbaugefrierschrank nicht ausbauen zu müssen :( Ob das teil wirklich eingefroren ist, kann ich nicht sagen. Leider ist der Gefrierschrank derzeit auf maximum gestellt, deshalb dachte ich an
-
Thread
Display Chip ST7789V Library
dokumentiert sind. Das ist da so üblich, ... Also entweder für Register den Leitung entsprechend setzen, das Byte über SPI rausschreiben, und für Parameter entsprechen die Leitung invertieren. bei 9bit, das entsprechende bit entsprechend setzen, ...
2. 0x36 schreiben (8 Bit) 3. RS (Pin 9) = 1 4. 0x00 schreiben (8 Bit) 5. RS (Pin 9) = 0 6. 0x3a schreiben (8 Bit) 7. RS (Pin 9) = 1 8. 0x05 schreiben (8 Bit) ........u.s.w ??
-
Thread
UART mit 9bit
Hallo, indem Du Dir ein passendes PC-Programm dazu schreibst? Was willst Du mit dem 9bit-Mode? Ich hatte noch die die Notwendigkeit, etwas anders als 8Bit benutzen zu müssen. 7Bit würde mir noch für die direkte Ansteuerung alter ASCII-Terminals einfallen und 5Bit für Baudot-Code aus
direkt, wie er das 9.Bit setzen soll. Zu DOS Zeiten ging das noch wunderbar. In Windows ist das aber mit den ganzen Buffern usw. etwas schwierig. Das Empfangen geht ähnlich. Man kann z.b. 2 Stop Bits verwenden und erhält das
-
Thread
7-Segment Multiplexing mittels ATmega
brauchst. Was soll ich dir da jetzt gross für einen Tip geben? Du wirst ja doch wohl ein einzelnes Bit an einem Port auf 1 setzen können, wenn es 1 werden soll. Wenn beim Multiplexen die 7Segment Anzeige mit der Nummer 0 drann ist, dann eben den Punkt noch mit dazu einschalten [c] .... SEVEN_SEGMENT_PORT
Bit auf 1 setzen ist kein Problem. Nur wie teil ich ihm mit das er dieses Bit nur auf dem 1 Segment setzen soll wenn ich zb. eine Taste drücke.
-
Thread
Debbuging Modus funktioniert nicht wie er sollte (AMTEL Studio 7)
]#include <avr/io.h> int main(void) { DDRA = (1 << PA7); // PORTA (Pin A7) auf Ausgang setzen while (1) { PORTA |= (1<<PA7); //Bit setzen PORTA &= ~(1 << PA7); //Bit löschen } } [/c] Sofern die Syntax und die Semantik stimmen, müsste nun die while-Schleife fortlaufend laufen und ständig das Bit setzen und löschen. Wenn ich auf Step-Over klicke um die einzelnen Schritte durchzugehen, setzt er erstens das Bit überhaupt nicht und bleibt sogar beim Befehl "PA7 Bit löschen" einfach stehen, also
-
Thread
SPI Flash Micron N25Q016 schreibt reproduzierbar nur Datenmüll
weiteren Zeilen sind direkt schon SPI-Befehle für den Flash, wobei die öffnende eckige Klammer das Setzen des \CS-Signals bedeutet und umgekehrt die schließende eckige Klammer das Deaktivieren des \CS-Signals. Zeile 2: Der Befehl 0x06 bedeutet das Write Enable-Bit im Flash zu setzen um überhaupt irgendentwas
Befehl 0xD8 der Sektor beginnend an der Adresse 0x00 0x00 0x00 (alle Addressen im Flash sind als 24 Bit-Wert zu übergeben) gelöscht. Zeile 3: 0x06 = Write Enable Bit setzen; 0x02 = Page Programm beginnend mit Adresse 0x000000, schreibe die 17 angegebenen Werte 0x5A bis 0x0F Zeile 4: Befehl 0x03
-
Thread
STM32 usart interrupt wird immer angesprungen
: [c] void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT)[/c]
sage, man muss es nicht löschen, das > passiert beim lesen des empfangenen Bytes automatisch. Ich setze mein > Fahrrad ;-) Ich glaube da hat der 900ss D. recht. Seht sogar bei der Dokumentation der STM32 FirmwareLib der ClearPendingBit Funktion für den UART.
-
Thread
STM32 CAN Botschaft empfangen
Maskenbit gesetzt. Mit diesem Filter fliegt alles raus. Du solltest mindestens das Maskenbit, das das RTR-Bit auswählt, auf 1 setzen. An welcher Stelle dieses Bit steht, verrät ein Blick ins RefMan.
gesetzt. Mit diesem Filter fliegt alles > raus. Du solltest mindestens das Maskenbit, das das RTR-Bit auswählt, > auf 1 setzen. An welcher Stelle dieses Bit steht, verrät ein Blick ins > RefMan. Eig genau anders rum, so werden alle IDs akzeptiert, ist also zum Testen so schon mal okay. Zum Takt
-
Thread
Präprozessor
effektiven Benutzen von Peripheriebits bei ARM und Cortex-Architekturen. Hier gibt es Register zum Setzen von Bits und andere zum Löschen von Bits. Das möglichst perfide Formulieren von Bits ist hingegen einfach nicht hilfreich. W.S.
GPIOD #define LED_Pin (1U<<PD12) [/c] und schreib Dir Befehle, mit denen Du die oberen und unteren Bits des BSSR-Registers manipulieren kannst. Ungefähr so: [c] /* Einzelnes oder mehrere Bits eines Ports setzen * * GPIOx * Pin: Bitmaske */ static inline __attribute__((always_inline
-
Thread
VGA Signale programmieren mit colormap?
Du musst während des sichtbaren Bereiches den D/A-Wandler für das grüne Signal auf einen Wert setzen und die beiden für das rote und blaue Farbsignal auf 0. Gruß Ralf
und Back-Porch). Während dieser Phasen (inkl. V/H-Sync=0-Phase) ist BLANK and DAC auf '0' zu setzen, was die analogen RGB-Ausgänge am DAC auf Blank-Level setzt (Farbe=Schwarz), sonst auf '1'. Die RGB-Werte kannst Du die ganze Zeit auf z.B. 0,255,0 (=Grün) setzen (BLANK zieht Signale während Porch-Phase
-
Thread
IC2 mit PCF8577
habe bisher nur c-ähnlich Sprache programmiert und kann mit dem Code nichts anfangen. Das erste Bit R/W muss ja 0 sein um zu schreiben. Das 2. Ist das Display das ich ansteuern möchte (also BANK 0, das erste Display). Dann kommt der Segment Byte Vector, aber ich verstehe nicht warum das 6bits sind
Hallo Samuel, schau' Dir mal Fig. 3 an. Dort wird der Aufbau des Control-Bytes genau erklärt. die Bits 3..5 stellen die den Teil I2C Adresse dar, die normalerweise in den Bits 1..3 des Startbytes steckt. Für den 8577 ist allerdings eine 7 Bittige Adresse fix vom Hersteller vorgegeben. um denoch mehrere
-
Thread
STM32F103 und die Sache mit den NVIC Prioritys
natürlich sein, dass der UART int deutlich öfter gefired wird als ich es sehe. Das Teil hat ja ne Menge Bits im NVIC. Die ChanFat hängt auch am Systick mit dran bei 1/1000, die braucht das scheinbar. Und die RTC brauche ich für die Zeitstempel der Dateien. Ist aber noch nicht aktiviert alles. Setze ich
abgeschrieben ohne es geprüft zu haben :-( USART1->SR; USART1->DR; USART_ClearITPendingBit(USART1, USART_IT_IDLE); USART_ClearITPendingBit(USART1, USART_IT_ORE_RX); USART_ClearITPendingBit(USART1, USART_IT_RXNE);
-
Thread
LCD KS0073 am AVRATMega128
löschen+Home lcd_befehl(0b00000110);*/ lcd_befehl(36); //4Bit Modus mit extension Bit RE=1 lcd_befehl(9); //4 Zeilen lcd_befehl(32); //extension Bit RE = 0 lcd_befehl(14); //LCD an lcd_befehl(1); //LCD löschen+Home lcd_befehl(6); }
Crystalfontz? http://www.datasheet4u.com/html/L/C/D/LCD-1602A_CA.pdf.html > PORTC = 0b00100000; //4 Bit Mode setzen Bist du sicher, dass da nicht 3x was zum LCD geschickt werden muss, bevor du so in den 4-Bit Modus wechseln kannst (vgl. Seite 17 im PDF oben)?
-
Thread
Fragen zum 8255
die Adressbits, den > Eingang vom Datenbus, die Lese- Schreibfunktionsbits, und dann über das > CS-bit den 8255er auswählen Das ist der Sinn von CS. >>> Geht!
"Lesevorgang" erhalten bleibt, also wenn man an Port A den Wert anlegt 10011100 dann will man das Bit XXXXXXX0 abfragen ob es ne 1 geworden ist, bleiben die X erhalten oder ändern die sich?
-
Thread
Spannungen vergleichen
explizit sein möchtest, kannst du noch schreiben [C] if( ( ACSR & (1<<AC0) ) == 0 ) // Bit nicht gesetzt [/C] [C] if( ( ACSR & (1<<AC0) ) != 0 ) // Bit gesetzt [/C] aber hüte dich davor, anzunehmen dass bei gesetztem Bit der ganze linke Ausdruck dann zu 1 wird! Das wird er nämlich
DDB5) | (1 << DDB6) | (1 << DDB7); //Datenrichtung Ausgang ADMUX &= ~(1<<REFS1);//auf Null setzen ADMUX |= (1<<REFS0); // auf eins setzen wegen der exteren Ref Spannung ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0); // Frequenzvorteiler // setzen auf
-
Thread
Vorschlag zu Hex-Ziffern auf 7-Segment-Anzeigen
Oder B348. Sofern überhaupt ein Hardware-Decoder verwendet wird. Der Vorteil nur 2 (statt 3, für 8 Bit) bzw. nur 4 (statt 5, für 16 Bit) Digits zu brauchen, bleibt unabhängig von der Ansteuerung der Displays ja bestehen.
Jens M. schrieb im Beitrag #6068804: > Reicht für Texte, Diagramme, sogar Skalen. 1024 bit bei 6 bit ASCII -- da passt eine komplette Twitternachricht von Donald T aus W rein.
-
Thread
Drehzahl / Geschwindigkeit "nullen"
Ich setze dazu ein bit in der ISR. In der Auswertefunktion wird das nach der Geschwindigkeitsanzeige gelöscht, falls beim nächsten Durchlauf das Bit weiterhin gelöscht ist -> Geschwindigkeit = 0.
keinen separaten Zähler für Timeout, > sondern kann die Messzeit nach Abschluß einer Messung auf 0 setzen und > diesen Zählerwert auch fürs Timeout nutzen. Ja so mache ich das im Moment auch. Ich werde aber vllt. auf meinen 10ms Timer gehen da ich bei dem 100µs Timer im Moment eine 16bit Variable benötige
-
Thread
STM32F103 SPI Slave + Master
Naja so wie ich es im Datenblatt verstehe, steuere ich bei NSS Software das Chipselect über ein SSI Bit, was ich widerum low setze am Anfang und wieder high am Ende. CS high dient nur um in der while Schleife den Slave Transceive Block auszulösen. [c] SPI2->CR1 &= ~(1UL << 8); [\c]
Antwort gibt). Der Master schiebt dann noch ein Dummy-Byte nach und holt sich so die Antwort. Bei 12-Bit-A/D-Werten benötigt man natürlich zwei Bytes (wie oben im Code angedeutet ist). BTW: Du solltest beim Setzen von Registerbits immer auf die Definitionen in der stm32f3xx.h zurückgreifen anstatt irgendwelche
-
Thread
C-Code funktioniert nicht
steht im Datenblatt nichts von CTC Modus In meinem Datenblatt Tabelle 39, steht das man für CTC das Bit "WGM12" für den Timer1 setzen muss. Das Bit befindet sich im Register "TCCR1B". Bei dir vermisse ich das. [c]TCCR1B |= (1<<CS11); // Prescaler 8[/c] Du setzt hier die Led2 [c] if ( sekunde =
steht im Datenblatt nichts von CTC Modus In meinem Datenblatt Tabelle 39, steht das man für CTC das Bit "WGM12" für den Timer1 setzen muss. Das Bit befindet sich im Register "TCCR1B". Bei dir vermisse ich das. TCCR1B |= (1<<CS11); // Prescaler 8 [/code] Es gibt ja auch Leute, die das Datenblatt
-
Thread
16bit-write ATMegaxx-PB
haben die das jetzt wirklich geändert?? Muss ich gleich mal ausprobieren. 324PB 8.6 Accessing 16-bit RegistersThe AVR data bus is 8 bits wide, and so accessing 16-bit registers requires atomic operations. Theseregisters must be byte-accessed using two read or write operations. 16-bit registers are connected to the8-bit bus and a temporary register using a 16-bit bus.For a write operation, the low byte of the 16-bit register must be written before the high byte. The low byteis then written into the temporary register
-
Thread
Atmel8: Interrupt mit 8-Bit Timer0 geht nicht
das OCIE1A setzen oder wird der OC1A Pin auch ohne dieses Bit getoggelt? Ich weiss es ist keine grosse Mühe es zu setzen,aber kann man es auch weglassen? Vielen Dank daniel
definieren, sonst gibts bei jedem Compare einen Reset (vorausgesetzt Du programmierst in C). Das setzen des Ausgangspins ist aber völlig unabhängig davon, ob der Interrupt aktiv ist oder nicht.
-
Thread
LCD-Display AV1624 ansteuer Probleme
Bzw. wo liegt mein Gedankenfehler? Zumindest in allen Fällen an denen <Disp_Port> direkt mit 8 Bit beschrieben wird. <Exe_Port> pauschal auf Null zu setzen wird auch nicht zielführend sein. [c] void Write_Data() //0 an erster Stelle im Display ausgeben { Exe_Port=0x00; Disp_Port=0x00
beschrieben. Ich hoffe dies nicht zu wiederholen. Fach Mann schrieb im Beitrag #5226484: > Indem du ein Bit löschst genau dann wenn es null sein > soll, und indem du es setzt genau dann wenn es 1 sein > soll. Es erschien mir leichter zu sein einfach alle 0 zu setzen und nur die benötigten dann high zu
-
Thread
SREG – Status Register beim Attiny 841
es ist die Abkürzung für "SEt I" - also Setze das I-Bit. Wenn man sich den Befehl genauer anschaut, stellt man ebenfalls fest, dass SEI identisch mit BSET 7 ist. Setze Bit 7 in SREG. Wenn also irgendwo steht, dass man das I-Bit nicht setzen
) benutzen muss, dann ist das Bullshit, denn mit dem Kommando tut man genau das. Also: Um das I-Bit zu setzen ist sei() genau das richtige Kommando. Nicht eine Alternative. Gruß Jobst
-
Thread
Pollin Addon-Board V1.0
Fleury nehmt, müsst ihr in der lcd.h folgendes einstellen und natürlich die Jumper auf dem Addon auch setzen: [c] #define LCD_PORT PORTA /**< port for the LCD lines */ #define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */ #define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */ #define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */ #define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */ #define LCD_DATA0_PIN 4 /
-
Thread
ADC 16-Bit gesucht
16 Bit ist sehr empfindlich, d.h. Speisung und Referenz müssen "sauber" sein. 16 Bit bringen nichts, wenn 4 Bit nur Rauschen sind. Gruss Thomas
es kommt doch mehr oder weniger auf das selbe heraus, ob ich jetzt eine Spannungslupe vor einen 10 BIT AD Wandler setze, oder die volle Spannung mit 16 BIT auflöse. Bei 16 Bit habe ich dann ja auch noch die Probleme mit dem Design und dem einlöten. Entscheidend bei der Messung sind ja meiner Meinung
-
Thread
OLED Sammelbestellung
Nur zur Info: Das Display kann auch SPI, RGB, und 18/16/9/8 Bit parralell.
setze passiert jedoch leider gar nichts und das OLED bleibt an.
-
Thread
4GB und 32 Bit.
Microsoft beschränkt für 32 Bit Prozesse den virtuellen Adressraum auf 2 GB. Dieses Verhalten kann mit setzen eines Flags im PE Header ausgeschaltet werden, so dass man auch als 32 Bit Prozess einen vollen virtuellen Adressraum von
MB für das Memory Mapping des PCI Busses ausgespart werden. Aber ja, der switch muss bei einem 32 Bit OS mit gesetzt sein, bei einem 64 Bit OS geht dies natürlich ohne.
-
Thread
1. Projekt 5Bit-Rechner
der über 5LEDs dual bis 31 zählt. Wenn man den Taster drückt, geht er immer ein Stück weiter. 5 Bit daher, weil ich nur noch 5 LEDs habe. Im Simulator funktioniert das Programm schon. Mein ISP ist noch nicht fertig. [avrasm] .include "tn2313def.inc" ;5-Bit Rechner von Sören Timm ; ;16.02.2010
button: ;Taster gedrückt inc r16 ;zähle hoch sbrc r16, 4 ;wenn im Zählwert bit5 gesetzt ist (=32), clr r16 ;setze auf null wait_button_release: ;warten bis taster nicht mehr gedrückt sbis PIND, 0 rjmp wait_button_release rjmp loop Gibt noch andere
-
Thread
Warum funktioniert mein AVR Assembler Code nicht?
Dezimalpunkt :-) Und man macht das normalerweise mit Tabellen, aber andersrum, d.h. Seg_a = bit0 ... DP = bit7.
#5892776: > Marc V. schrieb: >> aber mit Dezimalpunkt > Du hast noch eine Chance. Als Tipp: das Bit 7 ist ein Eingang... ? Ja, aber nur beim TO, normalerweise ergeben 7 Segmente und DP genau 8 bit und so wird es auch verbunden, angefangen bei bit0 und Segment a.
-
Thread
DOS-COM mit bcc erzeugen (16bit),
Hi, ich möchte mit dem bcc-compiler MSDOS-COM Programme erzeugen. Das funktioniert so halb... Testen tu ich das Ganze mit dosbox auf linux. Dieses Programm hängt die dosbox in einer Endlosschleife auf, scheint also geladen zu werden und zu laufen: [c] int main() { for(;;); } [/c] Disassembly: [avrasm] 00000000 55 push bp 00000001 89E5 mov bp,sp 00000003 57 push di 00000004 56 push si 00000005 EBFE jmp short 0x5 00000007 5E pop si 00000008 5F pop di 00000009 5D
-
Thread
Zuweisungsfehler?!
von Vorteil, wenn ich das begriffen habe. Noch eine andere Frage! :) Warum wird das true. Ein Bit-Beispiel würde mir reichen! ;) [c] /* Fuehre Aktion aus, wenn Bit Nr. 1 (das "zweite" Bit) in PINC gesetzt (1) ist */ if ( PINC & (1<<PINC1) ) { /* Aktion */ } [/c] Ganz lieben Dank für die
Maximilian Lang wrote: > Noch eine andere Frage! :) > Warum wird das true. Ein Bit-Beispiel würde mir reichen! ;) > [c] > /* Fuehre Aktion aus, wenn Bit Nr. 1 (das "zweite" Bit) in PINC gesetzt > (1) ist */ > if ( PINC & (1<<PINC1) ) { > /* Aktion */ > } > [/c] > > Ganz
-
Thread
ADC 10bit auslesen
if bit in wert gleich eins setze ausgang ansosnten lösche ausgang das ganze für die beiden Bits.
>jetzt würde ich gerne auf 10 Bit >erhöhen. Dazu wollte ich noch PORTD PIN6 und PIN7 zum DA-Wandler dazu >schalten. Zum Glück willst du die unteren Bits damit umschalten. PORTC und PORTD können nicht gleichzeitig gesetzt werden
-
Thread
Arduino mit Pt1000 und 400°C Schaltung
> der UNO 1600 verschiedene Werte liefern können. Kann er aber nicht, der ATMega328 wandelt 10bit. Manfred schrieb im Beitrag #7117386: >> Auflösung etwa 0,25K > Nein, mit dem internen A/D des A*Uno 0,4K. Diese 0,4K setzen voraus, dass der Verstärker den PT1000 sauber auf 0,0..5,0 Volt skaliert
Temperatur ohne großen Rechenaufwand möglich. Rx = ADC / (ADCFSC - ADC) * R[ref] Beispiel: 14-bit ADC (16384), VREF=VDD (Adc muss VDD als Vref erlauben) RX= 2470.9 Ohm (400 Degc) R[ref]=4000.00 Ohm Adc-Wert (14-bit) sei 6256 Dann, Rx = 6256 /(16384-6256)*4000=2470.77Ohm Dann braucht man
-
Thread
Wenige 100kb aber alles drin?
habe es noch mit Visual Studio 2022 ausprobiert: Läuft. Allerdings hat die statisch gelinkte 32 Bit Version statt 28 kByte 74 kByte. Die dynamisch gelinkte 32 Bit Version hat dafür gerade mal 12 kByte. Mit dem 64 Bit WinDDK 7.10 Compiler - der mit der alten MSVCRT linkt - hat die statisch gelinkte 64 Bit Exe 41 kByte, und die dynamisch gelinkte 9 kByte. Gruss, Udo
-
Thread
DCF77 Uhr in C mit ATtiny26
Teiler für Timer0 auf 256 reduziert. Um die Toleranz zu erhöhen habe ich die beiden Zeitgschranken zum Bit erkennen jeweils um +1 und -1 vergrößert. Die Hauptschleife besteht nur aus ein paar if Abfragen zum Port setzen und andschließendem aktivieren des Idle Modus des Controllers.
Der Gedanke ist: Timer0 Frequenz = 1024Hz; Das DCF Signal nur in jedem 16. Durchlauf prüfen. (8Bit Variablen) Zum Verständnis "richtigerweise" müßte doch die DCF77 Abfrage nach dem setzen von TCNT0 geschehen. Ich sehe ein das die paar Takte um das dcf Signal abzutasten an der Genauigkeit so gut
-
Thread
Hilfe zu Drehencoder-Auswertung nach Wiki
Rudi D. schrieb im Beitrag #1938024: > Verstehe ich in der Eile nicht. Anschluss von Spur A an Bit 0 und Spur B an Bit 2: Bit 0: Spur A neu Bit 1: Spur A alt Bit 2: Spur B neu Bit 3: Spur B alt ...
schrieb im Beitrag #1938024: > >> Verstehe ich in der Eile nicht. > > Anschluss von Spur A an Bit 0 und Spur B an Bit 2: > > Bit 0: Spur A neu > Bit 1: Spur A alt > Bit 2: Spur B neu > Bit 3: Spur B alt > > ... Danke, bis zum nächsten mal LD Rudi
-
Thread
Arduino oder
hilfreich sein: http://stefanfrings.de/mikrocontroller_buch/index.html Man kann auch direkt mit 32bit einsteigen. Die 32bit an sich sind nicht komplizierter, als 8bit Programmierung. Aber alle 32bit Mikrocontroller haben viel mehr Funktionen. Die Menge dieser Funktionen macht sie erheblich komplexer
> Man kann auch direkt mit 32bit einsteigen. Die 32bit an sich sind nicht > komplizierter, als 8bit Programmierung. Aber alle 32bit Mikrocontroller > haben viel mehr Funktionen. Die Menge dieser Funktionen macht sie > erheblich
-
Thread
RC-Switch in GCC - Problem
include <avr/io.h> #include <stdint.h> #include <avr/interrupt.h> #ifndef cbi #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) #endif #ifndef sbi #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) #endif volatile int valu; int main (void) { DDRB = 0b011000; //
grad gesehen bei PonyProg gibts ja die Option 'Osc. Calibration Options' Da kann man das warsch. setzen wenn ich dort den wert auslesen lasse kommt da 0x6B (107) raus Sollte ich da jetzt dann 01 setzen? bzw im setzen Feld sind sogar 4Bits verfügbar (Maske 0x0000) Soll ich da jetzt einfach mal 0x0010
-
Thread
USB CDC von Stefan Frings und WS
Gang, > wenn irgendwann später wieder Zeichen im Ringpuffer landen? Einfach im EPnR die STAT_TX-Bits auf "11" (VALID) setzen. Vorher die Adressen des Puffers in der Deskriptor-Tabelle aktualisieren. Das geht von beliebigen Codestellen aus und braucht überhaupt keinen NAK-Interrupt. Meine USB-CDC-Implementierung
Bit9 wird ein Connect USB-PC angezeigt.
-
Thread
uint128_t mit AVR?
(wird >die einfachste Loesung sein) Das ist es. Eine Funktion vom Typ "Setze Bit X im Array" ist in 10 min programmiert. Siehe auch die Links im Artikel [[Bitmanipulation]]. > oder Arbitrary Precision Arithmetic >(http://en.wikipedia.org/wiki/Bignum) NEIN!!! MfG
ebefalls ziemlicher Nonsense zu sein. Du möchtest dir im AVR Studio noch einmal den Abschnitt über Bit setzen und Bit löschen an einem Port ansehen. Gefragt sind hier die Schreibweisen, die nur 1 bestimmtes Bit verändern und nicht rundumschlagmässig den komlpetten Port beschreiben.
-
Thread
Betriebsstundenzähler ohne hohen EEPROM-Verschleiß
auch einmal. Ich hatte damals versucht, herauszubekommen, ob das Setzen einzelnen Bits tatsächlich, wie ich vermutete, das EEPROM weniger stresst, als das Löschen. Vielleicht stresst das Setzen aller 8 Bits nacheinander die Zellen gar nicht oder zumindest weniger als das
spezielle EEPROM-Technologieen, die dafür optimiert sind. Wahrscheinlich ist es auch klug, beim Setzen des neuen Bits nicht nur die Bits, die gelöscht bleiben sollen, sondern auch die, die bereits gesetzt sind, mit 1 zu beschreiben und nur für das neue Bit eine 0 auszugeben. Grüße, Uwe
-
Thread
Warum wird Hex-File für ATTINY13 nach setzen eines Portes rießig?
Hex-File auf größe von ca. 7,7KB und passt somit nicht mehr auf den ATTINY13. Wenn ich nun aber nur das setzen des PORTB aus der Anweisung der if-Abfrage kommentiere beträgt die Größe der Hex-File nur noch ca. 450 byte. Woher kommt das? Kann mir jemand weiterhelfen? Über Antworten freue ich mich!! :)
Man kann übrigens auch den Compiler die realen Spannungen auf 16bit-Variablen umrechnen lassen(die Genauigkeit schient hier vonnöten zu sein). Der Tiny muss sich dann nicht mit float rumplagen. Dazu muss man nur wissen, dass 1024 ADC-Zähler eben 2,56V entsprechen.
-
Thread
SPI / I²C Anzahl unterschiedlicher Devices
/s z.B. 8 Bit/s = 1 Byte/s SPI-Takt f entspricht direkt Bit/s, weil bei jedem Takt ein Bit übertragen wird. Hast du also 1 MHz SPI-Takt, dann hast du 1.000.000 Bit/s oder 125000 Byte/s. Das ist aber alles
. Die Bits 5 bis 1 : Reservierte Bits, bei denen immer eine 0 gelesen wird. Bit 0: Double SPI Speed Bit (SPI2X): Durch das Setzen dieses Bits kann die Übertragungsgeschwindigkeit noch mal verdoppelt werden
-
Thread
PIC LCD Ausgabe von Strings
geschieht mit den Funktionen write_porta, write_portb und write_portc. Damit ich nicht jedes Mal beim Setzen von Bits in Port B die LCDE Leitung neu setze, ist diese einzeln an PortC. Die Beschaltung sollte soweit stimmen, da ich mit einer bestimmten Variante meines Codes (der hier geposteten) das Display
Schattenregister. Man sollte modernere nehmen, die ein Ausgangslatch haben. Da kann man dann gefahrlos einzelne Bits setzen oder löschen ohne die anderen zu beeinflussen. Peter
-
Thread
Hilfe bei AVR-Assembler Erstversuch
warten_aktiv ;sonst gehe zu com inttemp ;port umdrehen bst inttemp,2 ;bit d2 holen bld flag,bit ;und in flag bit0 sichern sbr flag,(1<<neuesbit) ;neues bit da setzen cbr flag,(1<<messen) ;flag für messen aus ldi inttemp,176
starten out tccr0,inttemp out sreg,intsreg reti warten_aktiv: ;ca 10000us kein bit mehr eingetroffen sbr flag,(1<<keinDCC) ;bit für keine befehle setzen out sreg,intsreg reti Gruß Willi
-
Thread
[STM32] HAL vermeiden?
es erstmal läuft. Die Feinheiten kann man dann ändern, wenn es nötig ist. Noch viel Spaß beim Bits und Beits zertreten....
Reset abgeschmiert. Auf der Suche nach der Lößung bin ich dann im RefMan auf das hier gestoßen: > Bits 12:10PPRE1: APB Low speed prescaler (APB1) > Set and cleared by software to control APB low-speed clock division factor. > Caution:The software has to set these bits correctly not to exceed 42 MHz