-
Thread
Massive IO Porterweiterung - Stabilität des IO - mehrfaches SPI
der Umsetzung siehst. Dir ist wahrscheinlich nicht klar, dass das Lesen der Eingänge und das Setzen der Ausgänge über SPI *sehr schnell* geht. Wenn sich in der kurzen Zeit zwischen dem Erfassen der Eingänge und dem Setzen der Ausgänge etwas ändert, wird das natürlich nicht sofort erfasst, sondern
und auszugeben. > Dir ist wahrscheinlich nicht klar, dass das Lesen der Eingänge und das > Setzen der Ausgänge über SPI *sehr schnell* geht. Wenn sich in der > kurzen Zeit zwischen dem Erfassen der Eingänge und dem Setzen der > Ausgänge etwas ändert, wird das natürlich nicht sofort erfasst,
-
Thread
AD-Wandler mittels SPI auslesen
Ich habe es jetzt so verstanden, dass ich nach dem Senden von SendByte CE0 erstmal wieder auf HIGH setzen muss (Figure 9 in dem Datasheet). Nach der Acquisition-Time von 1,5 Mikrosenkunden setze ich CS = LOW und bei der fallenden Flanke von SCLK wird das erste Bit empfangen. Kann ich eigentlich auch
Huch? Komische Umrechnung. Ich würde sowas machen wie (bits[1] << 8) + bits[0] oder so. Modulo Vorzeichen.
-
Thread
Strukturen mit memset initialisieren (C/C++)
Padding-Bits auf eine Trap-Representation setzen. Nachzulesen im C99-Standard.
irgendwelche > Padding-Bits auf eine Trap-Representation setzen. > > Nachzulesen im C99-Standard. Das ist natürlich prinzipiell richtig. Aber mal ehrlich: Im industriellen Bereich (also im wirklichen Leben von 99% aller
-
Thread
16 Bit SPI senden
gesendet lower_byte = (uint8_t) (value>>4); // Merke dir niederwertiges Byte (Die höchsten 12 Bit werden versendet) SPDR = 0b01110000|(value>>12); // Setze Controlbits '0111', verschiebe die 4 höchsten Bits an die richtige Stelle und starte SPI senden } } [/c] Wäre sehr
gesendet lower_byte = (uint8_t) (value>>4); // Merke dir niederwertiges Byte (Die höchsten 12 Bit werden versendet) SPDR = 0b01110000|(value>>12); // Setze Controlbits '0111', verschiebe die 4 höchsten Bits an die richtige Stelle und starte SPI senden } } [/c]
-
Thread
warteschleife 8-Bit-Microkontroller
hallo leute. wie programmiert man eine warteschleife, die 300 Impulse lang wartet, für einen 8-Bit-Microkontroller (assembler)?
hallo leute. wie programmiert man eine warteschleife, die 300 Impulse > lang wartet, für einen 8-Bit-Microkontroller (assembler)? Ich kann kein Assembler, aber das dürfte genau so funktionieren wie in jeder anderen Programmiersprache auch: - einen Zähler deklarieren und auf 0 setzen - in einer
-
Thread
Schneller 8bit Treiber gesucht
Dirk E. schrieb im Beitrag #7825462: > 8bit io ic mit open collector Oder Tri-State Ausgängen.
wenn ich zuwenig Pins habe, und die Pins nichts koennen muessen. Di kann man gut kaskadieren, zB 24bit Outputs
-
Thread
AVR - if/while werden übersprungen
lcd_gotoxy(0,0); lcd_puts("Monat Einer*****"); lcd_gotoxy(y1,1); lcd_putc(y2+0x30); while (bit_is_set(PIND, PD3)); while (bit_is_clear(PIND, PD3)) for (mon1=0;mon1<10 && bit_is_clear(PIND, PD3);) { y2=mon1+0x30; lcd_gotoxy(y1,1); lcd_putc(y2); _delay_ms(350);
Ausnahme > mit einer Ausnahme von der Ausnahme :D Lass mich gerne eines besseren > belehren. Setz doch mal das Jahr 2012 - nachdem die Jahreszahl von 8 auf 16bit erweitert wurde - ein, das ja zweifelsfrei ein Schaltjahr war: 2012%400 = 12 --> Bedingung gibt 0 zurück und damit wird der ganze Ausdruck
-
Thread
PWM für Modellservos
ich die gescannten Impulse nicht, die Servos haben sicher nix dagegen, wenn ein AVR "mithört"... Bit- & Bytebruch... ...HanneS...
später noch mal mit Tiny26 machen, dann incl. Servoelektronik und Programmiertaste (Trimmung). Bit- & Bytebruch... ...HanneS...
-
Thread
Problem mit LCD an ATMega 644
PD4 am AVR 12 DB5 PD5 am AVR 13 DB6 PD6 am AVR 14 DB7 PD7 am AVR lcd_command(0x28); // 4Bit 2 Zeilen 5x7 wird nun akzeptiert jedoch geht wie vorher nur eine Zeile in der soft Reset Routine musste ich das 0x30 mit einem 0x20 wie bei auf 4-bit setzen tauschen sonst kein bild laut der
10k zu setzen so das solange das teil am initialisieren ist und noch im 8 bit Modus es sofort auf 4 bit 2 Zeilen gesetzt wird also mit einem 0x28, glaubst Du das ist ne gute Idee?
-
Thread
AVR ATtiny26 - 3Channel PWM
== 0) { PWM_PORT = tmp; // Ports setzen zu Begin der PWM // zusätzliche PWM-Ports hier setzen pwm_cnt++; } else { PWM_PORT &= tmp; // Ports
das die Helligkeit repräsentiert, Also zum Beispiel: Bit 0 gesetzt -> 1 ms lang high Bit 1 gesetzt -> 2 ms Bit 2 gesetzt -> 4 ms ... Bit 7 gesetzt -> 128 ms damit kann man dann die Gesamtzeit in 1 ms Schritten einstellen und braucht dennoch nur 8
-
Thread
Sicheres Multiplexen?
Ich muss bei einer Schaltung multiplexing einsetzen, und zwar mittels 4x 8bit-Shiftreistern. Das Timing sieht wie folgt aus: "shiftOut32(val);" - Wert wird gesetzt "delayMicroseconds(150);" - 150uS warten "blankOutputs();" - 0 setzen aller Ausgänge "delayMicroseconds
Das rausschieben von 32 Bit dauert länger als 150uSek? Ok... dann schau dir mal die Funktion an, die die Bits raus schubst. Ca. 5 uSek nur um ein Bit zu schieben ist schon arg viel...
-
Thread
RS232<->RS485 kann sich das mal einer angucken?
insgesamt 4 * 3.3k und 4 * 10k-Poti und 4 Kondensatoren): 9600 bps: C = 470 nF Timeout 1,56 ms Bit-Zeit 104,16 us 38400 bps: C = 150 nF Timeout 390 us Bit-Zeit 26,05 us 57600 bps: C = 100 nF Timeout 260 us Bit-Zeit 17,37 us 115200 bps: C = 33 nF Timeout 130 us Bit-Zeit
da war das genauso, ich konnte mir nur nie vorstellen, dass das läuft hatte immer Angst das erste bit geht verloren, da der MAx485 oder welcher auch immer erst auf senden schaltet wenn das erste bit kommt. Muss hier im Protokoll was geändert werden so erst eine bit schicken zum umschalten dann eigentliche
-
Thread
8 Bit Berechnung schnell, schneller am schnellsten
Hier reichen aber 8*8 bit mit 8 bit Ergebnis. Also 8 add 8 shift und 8 vergleiche plus evtl etwas nacharbeit.
denn jetzt für ein Controller und was für ein Datenformat brauchst du bei der AddPixel Funktion? 8Bit oder 16Bit? 8,16-Bit, integer, festkomma?
-
Thread
LCD am ATmega8
des LCD ist fehlerhaft. Ich hatte das gleiche Problem, weil ich die Betriebsarten 2-zeilig UND 4-Bit Bus gleichzeitig mit einem Kommando einstellen wollte. Nachdem ich zuerst den 4bit-Modus und dann 2-zeilig gesendet habe gings einwandfrei. Ich habe gerade den Code gerade nicht hier, kann aber
rcall lcd_enable ;3 rcall delay5ms ldi temp,0b00100000 ;set Function (zuerst mal 4 bit Interface aktivieren) rcall lcd_command ;sonst komme ich nämlich nicht an Bit 3 ran (für Modus 2-zeilig) rcall delay5ms ldi temp,0b00101000 ;set Function (2 zeilig, Font 5x7)
-
Thread
Bit zu Byte in Bascom
dim variable as byte dim bit0 as bit dim bit1 as bit dim bit2 as bit dim bit3 as bit dim bit4 as bit dim bit5 as bit dim bit6 as bit dim bit7 as bit variable.0=bit0 variable.1=bit1 variable.2=bit2 variable.3=bit3
Cooooool...... Und das verbraucht dann auch wirklich nur ein Register? Und jeder Bit-Zugriff (Setzen, Löschen) benötigt dann nur einen Maschinentakt? ...
-
Thread
Verschlüsselung im Jahr 2016: Immernoch "schwache" Hardware berücksichtigen?
Plattformen wurde in drei zusätzlichen Zielen unterteilt: - Die rechnerische Geschwindigkeit mit 128-Bit-Schlüsseln. - Die rechnerische Geschwindigkeit mit 192-Bit- und 256-Bit-Schlüsseln sowie die rechnerische Geschwindigkeit verschiedener Hardware- Implementierungen. Der Speicherverbrauch und
ein "OK" oder ein "N(och)2" aus. Dann kommt der "Verbesserungsvorschlag": "Wenn wir doch eh jedes Bit seriell als Eingabe bekommen, können wir doch gleich in der Eingabepufferzählschleife, die die Bits entgegennimmt, schon Bit für Bit mit dem gespeicherten Pin vergleichen. Dann brauchen wir doch den
-
Thread
CD-Uhr (HDD-Uhr) Ziffern nicht stabil "rollen", AVR Attiny2313
//als Ausgang setzen DDRD |= 1 << 5; // als Ausgang setzen hier hängt die LED dran DDRD &= ~1 << 3; // als Eingang setzen hier häng der Hall-Sensor dran PORTA |= (1 << 0); // Bits setzen PORTD |= (1 << 3); // Bits setzen lcd_init(); // Initialisierung des LCD wurde in lcd.h auf Port B gesetzt // internen clock vorteiler löschen CLKPR = 128; CLKPR = 0; // Wert darf nicht größer als 15 sein, sonst
-
Thread
DCF77-Modul von Pollin
und zu verkorkste Bits gleich ausmaskieren.
Meter von allen Stromleitungen angebracht -- alles ohne Erfolg. Mal kommen wilde Zacken anstelle der Bit-Signale, mal fallen Bits aus. Alle DCF77-Uhren im Haus funktionieren ohne Probleme. Momentan denke ich daran, das Modul abzuschreiben und es mit dem Modul von C** zu versuchen. Hat jemand Ideen
-
Thread
Variable ändert sich nur bei 8. Bit
auf E1 hat sich verändert, prüfen!!! if (!(tempPINA&(1<<i)) == (pina_last&(1<<i))) // Alle Bits durchgehen und vergleichen { e1c =0xFF; // Änderungsindex setzen if (!(tempPINA&(1<<i))){ e1hi[i] = 1; e1lo[i] = 0; } else{ e1hi[i] = 0; e1lo[i] = 1; } }} [/c] e1hi = Eingang 1 (PINA) wurde bei n-Bit high (GND) e1lo = Eingang 1 (PINA) wurde bei n-Bit low (VCC) e1c = Eingang 1 (PINA) hat sich verändert Zustand pina_last: 00000000 Zustand tempPINA: 00010000 Zustand e1hi: 00000000 Zustand
-
Thread
ausgesperrt aus Atmega1284p
Starte Atmel/Microchip-Studio, setze den Programmer auf den langsamsten SPI-Takt (2kHz) und lese die Signatur aus. Wenn die stimmt, kannst Du die Fuses wieder richtig setzen.
Peter D. schrieb im Beitrag #6978191: > Starte Atmel/Microchip-Studio, setze den Programmer auf den langsamsten > SPI-Takt (2kHz) und lese die Signatur aus. Wenn die stimmt, kannst Du > die Fuses wieder richtig setzen. Hi, auch HV-Programmierung kann als ultima ratio
-
Thread
Kolibri OS, vergrößerung der Community. Programmierung mit C
Ich sehe die 32bit Beschränkung auch problematisch.
Abdul K. schrieb im Beitrag #6861292: > Ich sehe die 32bit Beschränkung auch problematisch. Dann nimmst du das Original. Das ist auch 64Bit
-
Thread
Probleme mit GLCD von Powertip (T6963C)
// Grafik Home Adress setzen lcd_send_data(); // Auf 0200H setzen LCD_DATA = 0x02; lcd_send_data(); LCD_CMD = 0x42; lcd_send_cmd(); LCD_DATA = 0x28; // Grafik
das einfachste zum darstellen/testen? ich mache derzeit folgendes: Init: Grafikhomeadresse setzen (0x0400) Grafikarea setzen (0x1E = 30) Texthomeadresse setzen (0x0000) Textarea setzen (0x1E = 30) Mode setzen (0x81 = XOR Mode / internal CGRAM) Display Mode setzen (0x9F = Text und Grafik an
-
Thread
LCD-Tutorial.:)
hi, ich bin gerade dabei das LCD-Tutorial zu testen. ich bekomme das Display im 4Bit Modus ans laufen, heisst der Cursor blinkt an der ersten stelle, aber mehr auch nicht. [c] // Ansteuerung eines HD44780 kompatiblen LCD im 4-Bit-Interfacemodus // http://www.mikrocontroller.net
// RS auf 0 setzen temp1 = temp1 >> 4; // oberes Nibble holen temp1 = temp1 & 0x0F; // maskieren LCD_PORT &= 0xF0; LCD_PORT |= temp1; // setzen lcd_enable(
-
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
"Gruppierung" von Pins
sich die LEDs auf unterschiedlichen PORTS befinden (PORTD & PORTB). "Einfache" Bitmanipulationen (Bit setzen und zuvorgesetzes Bit rücksetzen) in Kombination mit einer Schleife, funktionieren wohl nicht (würden sich alle LEDs auf einem Port befinden hätte es geklappt). Blöde Frage, aber kann man irgendwie
Aber ich bin mega Port-Geizig. Und deshalb ein Fan von Port-Expander für so ein LED-Zeug. Passende Bits setzen und das in 1 Zeile via Libs zum PCF schicken. Einfach und praktisch.
-
Thread
bits in controlregister der lpt schreiben
hmmm aber meine clear/set bit funktion schreibt doch in Control rein?! und diese wird dann über ihren controlport rausgesandt... was mach ich denn da jetzt falsch (wie gehts besser?)?
Nur, falls es dir nicht aufgefallen sein sollte: Löschen des A0-Bits und senden ans LCD: cbi(LCD,A0); outp(byte,LCDP); Das ist okay. Keine Einwände. Löschen des CS-Bits: cbi(LCD,CS); Setzen von E: sbi(LCD,En); Löschen von E: cbi(LCD,En); Setzen
-
Thread
Firmwareupdate Lock-Bit ?
Dazu mußt du den Chip vorher komplett löschen, dann sind auch die Lock-Bits zurückgesetzt. Udn hinterher halt wieder neu setzen.
näheren Erläuterung: Ich will eine neue Version per ISP auf den AVR laden, trotz gesetzter Lock Bits.
-
Thread
kurze frage zur Init.
Beitrag #3226985: > Der AVR-GCC ist schon dahingehend nicht konform, dass sein > "double" nur 32 bits groß ist und damit den Minimalforderungen > des Standards an ein double nicht genügt Noch ne abschweifende Frage dazu: Im GCC double auf 64 Bits zu setzen und die entsprechenden Multilibs zu erzeugen
Johann L. schrieb im Beitrag #3226989: > Noch ne abschweifende Frage dazu: Im GCC double auf 64 Bits zu setzen > und die entsprechenden Multilibs zu erzeugen ist ja keine große Aktion, > aber wer würde die limbm-Teil übernehmen mit sin, cos, tan, exp, log, > etc.? Genau das wäre die Frage.
-
Thread
Byte verbittet sich das Verbitten
gern bereit etwas Etabliertes zu verwenden. Meinst Du Boolscher AND-Operator a´la Registerbits setzen? Kenn ich. Aber wie überträgt Mann das auf die Aubfrage von Bits einer char- variablen?
gern bereit etwas Etabliertes zu verwenden. Meinst Du Boolscher > AND-Operator a´la Registerbits setzen? nicht setzen. Ein Bit wir dmit einer ODER Operation gesetzt. Mit einem UND kann man Bits löschen (also gezielt auf 0 setzen). Man kann daher ein UND dazu benutzen, alle nicht interessierenden
-
Thread
unerwünschter Interrupt bei Timeraktivierung
TIFR, r16 ist einfach nur alle Interruptzeigeregister auf 1 (also "kein Interrupt vorhanden") setzen
; IRQ Serviceprogramm .ORG OC1Aaddr rjmp CTC_MATCH ; Timer1 (16-Bit) Serviceprogramm ; ########## HAUPTPROGRAMMBEREICH ########## START: ; Begin Hauptprogramm (Stackinitaklisierung usw.) ; Konfiguriere Timer1 (16 Bit) für
-
Thread
Suche: 16Bit digitaler Widerstand
Hallo, ich kenne keinen. Digitale Potis kenne ich bis maximal 10 Bit Auflösung. Der Großteil hat nur 7 Bit. Da wirst Du schon einen 16-Bit D/A-Wandler verwenden müssen. Wie sind denn so die Anforderungen an Genauigkeit und Linearität?
das mit dem Widerstand wollte ich mit einem 4066 (für 4 Bit) lösen. Weiß nur nicht, ob es zu aufwendig unz zu ungenau ist. Außerdem müßte ich jeden Widerstand als Poti nehmen und genau einstellen. Das ganze 4x hintereinander und mit 16Bit ansteuern...
-
Thread
WinAVR vs. Atmels Toolchain
WinAVR! Jeder, der mit avr-gcc arbeitet, sollte diese beiden Punkte beherzigen. Zum Glück werden 64-Bit Typen recht selten verwendet, und eine Option wie -fno-split-wide-types zu setzen ist kein Aufwand. > Zumal der Link den du unten angabst in einem Fall schon ein Jahr alt > ist, und im zweiten Fall
Jeder, der mit avr-gcc arbeitet, sollte > diese beiden Punkte beherzigen. > > Zum Glück werden 64-Bit Typen recht selten verwendet, und eine Option > wie -fno-split-wide-types zu setzen ist kein Aufwand. > AVR32-Studio bringt nach der Atmel-Website auch AVR-Tools mit. Wobei ich > nicht nachvollziehen
-
Thread
UART: Break-Signal immer auch ein Framing-Error?
und Stop-Bit) dauert. Nebst dessen das die SW üblicherweise den Pegel des Stop-Bits gar nicht sehen kann (um das Stop-Bit an die SW zu reichen müsste man den RC-FIFO um ein weiteres Bit breiter machen und sowas
in PCs > basiert auf dem INS8250 oder dessen Nachfahren wie 16450 und kann den > Break-Zustand setzen und löschen Ja ich bezog mich da mehr auf Mikrocontroller (8051, AVR). Ich hab das Break auch noch nie benötigt. Dafür kann die PC-UART wiederum keine 9Bit, wie es bei RS-485 gerne benutzt wird
-
Thread
4 Kanal MSO gesucht (Fortsetzung von "Oszilloskop R&S RTB 2k All-in, Erfahrungen")
auch bei Verwendung der 2 digital-Kanäle verfügbar, beim Hameg HMO3524 ist z.b. pro verwendeter 8 Bit Probe ein Analog-Kanal nicht nutzbar. Digital-Probes: frei definierbare Busbreiten, bis Bits "alle sind". Level pro Bit definierbar, Anzeige der Bus-Signale wahlweise als einzelne Bits oder Dez
Maxim B. schrieb im Beitrag #6633653: > aber 14 bit finde ich besser als 8. Maxim B. schrieb im Beitrag #6633234: > 14Bit(!) Lies nochmal genauer: die 14 Bit sind nur für den Signalgenerator. Das Oszi hat nur 8 Bit. Ist genauso wie bei meinem
-
Thread
Interruptroutine bei Lpc2294 startet nicht
_0_MASK); PLLCFG = PLLCFG | ((PLL_M-1)<<PLLSTAT_MSEL4_0_BIT); // PSEL setzen.... PLLCFG = PLLCFG & ~(PLLSTAT_PSEL1_0_MASK); PLLCFG = PLLCFG | ((PLL_P-1)<<PLLSTAT_PSEL1_0_BIT); // PLL aktivieren aber noch nicht connekten PLLCON =
IRQ interrupt VICIntSelect&= ~(1<<TIMER0_IRQ); // Benutze slot 0 für timer 0 interrupt, Bit 5 = 1 => Slot aktivieren VICVectCntl0=(1<<5) | TIMER0_IRQ; // Enable timer 0 interrupt VICIntEnable = (1<<TIMER0_IRQ); // Setze die Adresse der ISR für slot 0 VICVectAddr0 =
-
Thread
code funktioniert nicht
Fehler ist ... das du dich standhaft weigerst im Datenblatt nachzusehen in welchem Register das SPIF Bit beheimatet ist und dann eine korrekte Abfrage eines Bits in einem Register zu programmierern if( Register & ( 1 << BitNummer ) ) Bit ist gestzt else Bit ist nicht gesetzt
Ja. Aber "wo" ist das Bit?
-
Thread
ATtiny, Prescaler für Timer0 syncronisieren
Worten erklären, wie man den Vorteiler für Timer/Counter0 eines ATtiny13 zurücksetzt? Erst TSM-Bit setzen, dann PSR10 setzen und danach TSM-Bit wieder löschen oder geht das auch in einem Rutsch? Danke im Vorraus! Michael
Zählstand fest. Nur das Bit PSR10 zu setzen bringt doch keine wirkliche Synchronisation oder ? Zum richtigen Synchronisieren muß ich also erst das Bit TSM setzen und danach das Bit PSR10 oder ? Wenn ich nun nach der oben
-
Thread
Timer1-Interrupt
, 0 ;nicht zum Bitsetzen springen, ;wenn schon gesetzt rjmp BIT_SETZEN cbi PORTC, 0 ;Bit 0 löschen reti BIT_SETZEN: sbi PORTC, 0 ;Bit 0 setzen reti Das ist kompakt, ohne Tricks und verändert weder ein Register noch
cbi PORTx,y löscht das Bit, sbi PORTx,y setzt das Bit, sbi PINx,y toggelt das Bit, aber nur bei einigen modernen AVRs (siehe Datenblatt)
-
Thread
ATMEGA 32 Port als Eingang und als Ausgang
Tutorial (http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD) habe ich gelesen, dass man durch Setzen oder nicht setzen von RW unter anderem das Busy Flag auslesen kann. Das kommt ja, wenn man das LCD im 8bit betrieb laufen lässt auf Port7 des LCD. Ich würde das LCD auch gerne im 8bit Modus laufen
kommen: void lcd_command( uint8_t data ) { LCD_ADD_PORT &= ~(1<<LCD_RS); // RS auf 0 setzen LCD_ADD_PORT &= ~(1<<LCD_RW); // RW auf 0 setzen LCD_DDR = 0b11111111; lcd_out( data ); // Bits Senden LCD_DDR = 0b00000000; LCD_ADD_PORT |= (1<<LCD_RW);
-
Thread
Anritsu MS8604A Fehler
der Organisation der Speicherzellen (8-Bit Row, 5-Bit Column) warum es zwei Einbrüche gibt. Aber das ist erstmal nur eine Vermutung.
ausgelesen und den Inhalt dem Dieter geschickt. Aber in zwei der Karten sitzen Eproms ebenfalls mit 16bit breite Datenwörter welche nicht 40 Pins haben sondern 42 Pins. Die bekomme ich fürs verecken nicht in den Sockel gesteckt. Die Methode die einzelnen überstehende Pins auf 0 oder 5V zu setzen ist
-
Thread
Simple software UART, sieht jemand den Fehler?
(parity oder stopbit) { //if(ucBitCount == 0) //{ // OCR0A = TIMER_VALUE; //Timing auf ein ganzes bit setzen //} if(ucBitCount < 8) //Wir lesen nun die Bits ein { if(RX_PIN)
setzen mit: OCR0A = TIMER_VALUE * 2; Dann muss ich auch folgenden Code einsetzen: [c] if(ucBitCount == 0) { OCR0A = TIMER_VALUE; //Timing auf ein ganzes bit setzen }
-
Thread
Bit an GPIO (AVR) präzise getimed ausgeben
[c] ISR(TIMER1_OVF_vect) { if(theBit){ PORTD |= 0b01000000 ; } else { PORTD &= 0b10111111 ; } } [/c] Ich möchte ein Bit ausgeben, und zwar in präzisen Zeitabständen. Wenn ich das so mache, wie oben, jittert das Bit zum einen weil
Die Bits, die jitterfrei auszugeben sind, sind quasi zufällig.
-
Thread
letzten 5 bit abschneide
ja, ich möchte sozusagen aus einer 32bit zahl eine 27bit zahl machen. Ich lese aus einem ADC eine 24bit zahl in eine 32bit variable(int32_t) und möchte die letzten "schwankenden" 5 bits "wegschneiden" also das er nicht mehr schwankt
Der Peter schrieb im Beitrag #2667717: > ja, ich möchte sozusagen aus einer 32bit zahl eine 27bit zahl machen. > Ich lese aus einem ADC eine 24bit zahl in eine 32bit variable(int32_t) > und möchte die letzten "schwankenden" 5 bits "wegschneiden" also das er > nicht mehr schwankt
-
Thread
attiny 3 16bit PWM kanäle mit 8bit timer
hi, attiny mit 3 16bit PWM kanäle mit 8bit timer hat sowas schon mal jemand Programmiert und wär bereit den Code zu posten. hab mir das so vorgestellt: pwm-werte größe nach sortiert. im 8bit-timer-überlauf: 8bit-variable
, ob ebenfalls in diesem 8bit-zyklus dran, falls ja neuen outputcompare setzen sonst nixmachen beim überlauf der pwm-highbyte-variable, rücksetzen der pins prinzipiell sollte es ja so gehen, aber der Teufel liegt ja bekanntlich
-
Thread
LCD funktioniert nicht
Code: [c]/*Initialisiert das LCD*/ void init_lcd(void){ /*Interface auf 8-Bit setzen*/ PORTA = 0x0C; _delay_ms(100); lcd_enable(); /*Interface auf 8-Bit setzen*/ PORTA = 0x0C; _delay_ms(100); lcd_enable(); /*Interface auf 8-Bit setzen*/ PORTA = 0x0C; _delay_ms(100); lcd_enable(); /*Zeilen (4) und Matrix (5x7) setzen*/ _delay_ms(100); PORTA = 0x14; lcd_enable(); /*Display
-
Thread
Terminal 9Bit
nur ist das sehr sehr umständlich und vor allem wird dadurch alles ziemlich lahm, wenn man das 9. Bit auch synchron zum Rest halten will
das Paritybit. 9 Datenbits plus Parity sind unmöglich. Da wird nix verzichtet, Mark oder Space setzen das Paritybit auf eben Mark oder Space. Das ist das Paritybit.
-
Thread
Probleme bei Lattice I2C EFB mit Wishbone Interface
State Start springe den es nicht gibt. Also State START = POR. Die Startcondition ist somit POR. Ich setze das CR (x"4A") mit I2CEN=1 (Bit 7),SDA_DEL_SEL =11 (Bit 3 + 2).
Die Startcondition setze ich im State I_CMDR, dort schreibe ich auf das Commando Register und setze Registerbit 7 (START) und 4 (Write) = x"94".
-
Thread
AVR Ardunino Nano ATMega328P Timer OVF (Overflow) Interrupt
LOW-active LED an PD0 int main(void) { DDRD |= (1 << LED_RX); // Pin der LED_RX als Ausgang setzen PORTD |= (1 << LED_RX); // LED_RX ausschalten DDRB |= (1 << LED_L); // Pin der LED_L als Ausgang setzen PORTB &= ~(1 << LED_L); // LED_L ausschalen sei(); // globale Interrupts aktivieren
ja schon identifiziert: du setzt den falschen Int. Das mit den komischen Masken mit geshifteten Bits ist aber auch ein Kram. PICs können direkt ein Bit setzen ;) und man fällt nicht über &=, |= und ^= mit >> und << und was weiß ich noch. Und nicht vergessen: bei Überlauf deines Zählers musst du
-
Thread
STM32F1 Verständnis mit Registerbits
: "The HSEBYP bit can be written only if the HSE oscillator is disabled"? Widerspricht sich das nicht irgendwie? Und sollte ich dieses Bit setzen, wenn ich einen externen Quarz verwende oder ist das üblicherweise überflüssig
the HSE oscillator is disabled"? Widerspricht sich das > nicht irgendwie? Und sollte ich dieses Bit setzen, wenn ich einen > externen Quarz verwende oder ist das üblicherweise überflüssig, wenn man > sowieso den internen Takt deaktiviert? (S. 131, Ref. Man.) Häh? HSEBYP musst Du setzen,
-
Thread
ATmega1284p lässt sich nur einmal laden
Die Frage: in Manual in 9.12.2 steht: "The CKDIV8 Fuse determines the initial value of the CLKPS bits. If CKDIV8 is unprogrammed, the CLKPS bits will be reset to “0000”. If CKDIV8 is programmed, CLKPS bits are reset to “0011”, giving a division factor of 8 at start up." Wenn aus deinem Bericht kommt
Programmieren in aller Ruhe den Hart-Reset weg. Und das Programm läuft ohne über die alten CLKPR-Bits zu stolpern.