-
Thread
Meinung zum Display
sich der Farbwert eines jeden Pixels durch die Übertragung von nur 4 bzw. 8 Bit setzen.
läßt sich der Farbwert eines > jeden Pixels durch die Übertragung von nur 4 bzw. 8 Bit setzen. Ja aber es geht hier um ein konkretes Display. Wen interessiert was früher bei irgendwelchen alten Grafikkarten war?
-
Thread
Software Profibus DP-Slave in C
" Unit_Diag_Bit(6) = "reserved" Unit_Diag_Bit(7) = "reserved" Unit_Diag_Bit(8) = "Inputs of other DP LBS" Unit_Diag_Bit(9) = "Inputs of other DP 2nd LSB" Unit_Diag_Bit(10) = "Inputs of other DP 3rd LSB" Unit_Diag_Bit(11) = "Inputs of other DP 4th LSB" Unit_Diag_Bit(12) = "Inputs of other DP 4th MSB" Unit_Diag_Bit(13) = "Inputs of other DP 3rd MSB" Unit_Diag_Bit(14) = "Inputs of other DP 2nd MSB" Unit_Diag_Bit
-
Thread
Wie Display beschalten und Temperatur ausgeben?
RST an PC5 So, ich habe es nun folgendermassen aus dem Datenblatt verstanden, R/W auf Low setzen zum schreiben (...|&= ~(1<<PC1)) ok CS1 auf High setzen (...|=(1<<PC3)) ok D/I und E verstehe ich nicht wofür die seien sollen, aber das erlese ich mir gerade nochmal genau. Aber mit dem "daten
. D/I=1 Daten senden, z.B. Y-Adresse eines Pixels meist werden Bytes gesendet in denen z.B. ein H-Bit bedeuted dass ein Pixel gesetzt wird bzw. ein Low-Bit bedeutet, dass ein Pixel gelöscht, bzw. nicht gesetzt wird Ich würde es mal so probieren Power ON wait 100ms Setze RESET (RST) = Low
-
Thread
BLDC Sinuskommutierung Ansteuerung H-Brücke
und das Ergebnis auf den PWM Bereich // scalieren /* if (FW == 0) { n1=(IMAX-dU)>>(30-BITS); n2=(IMAX-dV)>>(30-BITS); n3=(IMAX-dW)>>(30-BITS); } else { n1=(IMAX-(IMAX/4+1)-dU)>>(30-BITS); n2=(IMAX-(IMAX/4+1)-dV)>>(30-BITS); n3=(IMAX-(IMAX/4+1)-dW)>>(30-BITS); }
// Begrenzung der Werte if (n1<0) n1=0; if (n2<0) n2=0; if (n3<0) n3=0; if (n1 > (1<<BITS)) n1=(1<<BITS); if (n2 > (1<<BITS)) n2=(1<<BITS); if (n3 > (1<<BITS)) n3=(1<<BITS); */ pM->dU=n1; pM->dV=n2; pM->dW=n3; pM->sector=sector; Der NullVektor wird auch in der SVPWM
-
Thread
LCD 204B-NLW & AtMega32
programmed." Ich nehme mal an, dass man sich hier über den MCUCSR Fusebite hermachen und dort das bit JTD zu null setzen muss. In der Registerübersicht findet sich weiter folgendes: [code] Address | Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 $34 ($54) | MCUCSR
wirklich was zu tun. Alex44 schrieb im Beitrag #2225596: > Jetzt müsste ich eigentlich nur das Bit von der Addresse holen und das > Entsprechenden Null setzen. Nein, das Flag heißt nicht umsonst JTD ("JTAG Disable"). Du mußt es auf 1 setzen. Im Deinem angedeuteten Sourcecode ist es allerdings
-
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
Timer 2 starten AVR4
Wenn ich anfange zu debuggen, kommen auch keine Fehler. In dem Fenster I/O View sehe ich die ganzen Bits vom Timer. Ich habe zwar "manuell" Bits gesetzt/gelöscht, aber in diesem Register muss ich trotzdem diese "Häckchen" anklicken, damit die Bits sich ändern. Ich habe auch den Verdacht, dass mein Timer
aber der TCNT2 hat nicht hochgezählt. Dann habe ich gemerkt, dass ich im TCCR2B-Register den CS20-Bit nicht gesetzt habe (da ja alles sonst null wäre und damit mein Timer ja stoppt). Aber wenn ich dieses Bit setze funktioniert mein Taster nicht mehr und ich werde langsam wahnsinnig. Könnte mir bitte
-
Thread
Welche ARM Modelle eignen sich für Anfänger?
eingängigere Namen und die Ports sind nummeriert, ich kann also mit einem Register Px.0 bis Px.31 setzen. Wie sieht es beim STM32 mit Bitbanding auf 8/16/32-bit aligned aus?
P0_3 : 1; __REG32 P0_4 : 1; __REG32 P0_5 : 1; __REG32 :26; } __gpio0_bits; __IO_REG32_BIT(DIR0, 0xA0002000, __READ_WRITE, __gpio0_bits); __IO_REG32_BIT(PIN0, 0xA0002100, __READ_WRITE, __gpio0_bits); DIR0_bit.P0_4 = 1; // output PIN0_bit.P0_4 = 1; // high
-
Thread
5 Zeiten mit ICP messen -> Problem mit den Timerwerten (ATmega8 und C)
Senden, Empfangen, ReceiveInt aktivieren UCSRC = (1<<URSEL)|(3<<UCSZ0); // Frame Format setzen:8data, 1stop bit (URSEL=1 -> UCSRC->Settings werden genutzt) } void ioinit (void) { DDRB = 0b00000110; //PortB konfigurieren PORTB = 0b11000011; DDRD = 0b00000010
TXC solltest du _auswerten_ (abfragen), um die RS485 wieder auf Empfang > schalten zu können. Das Bit wird (vom Controller) gesetzt, sobald das > letzte Bit den Puffer verlassen hat und kein neues im UDR steht. Eben, und um auf das Setzen durch die Hardware warten zu können, muss er das Flag ja
-
Thread
ARM Cortex gegen AVR
c-hater schrieb im Beitrag #3035180: > Was zum Teufel ist denn das für ein 32Bit-Prozessor, der nicht mal einen > 32Bit-Wert "immediate" laden kann? Erklär mir mal, wie ein Prozessor mit feste Befehlslänge von 32 Bits darin eine 32-Bit Konstante unterbringen soll. Soll heissen
c-hater schrieb im Beitrag #3035180: > Was zum Teufel ist denn das für ein 32Bit-Prozessor, der nicht mal einen > 32Bit-Wert "immediate" laden kann? Oder stellt obige Codesequenz eine > Optimierung dar? Ähm, beim ARM is jeder Befehl (außer im Thumb Mode) 32 bit breit, wie
-
Thread
MiniDisc, kennt das noch jemand oder nutzt es sogar?
recorder, von TEAC, mit dem ich recht zufrieden bin. Allerdings schafft auch der keine wirklichen 24bit, eher so 18-20bit - ist also gegenüber 16bit-Dat nun nicht gerade um Klassen besser.
Warum verwendet man im Audio Bereich eigentlich immer lineare 16 Bit ADC und nicht logarithmische mit weniger Bits?
-
Thread
LockBits ATmega1284P
Hallo, ich möchte folgende Funktion der LockBits realisieren: Das Auslesen bzw. das Verifizieren des Speichers von meinem ATmega1284P soll von außen nicht möglich sein. Deshalb setze ich die LockBits LB2 und LB1 auf 0. Ich lese die Lockbits
Andreas H. schrieb im Beitrag #2570600: > Hallo, > > ich möchte folgende Funktion der LockBits realisieren: > > Das Auslesen bzw. das Verifizieren des Speichers von meinem ATmega1284P > soll von außen nicht möglich sein. > > Deshalb setze ich die LockBits LB2 und LB1 auf 0. Ich lese die
-
Thread
Testaufgabe für Experten
10V übertragen (gegebenenfalls Spannungsteiler vor dem ADC). 0V = 0 10V = 1 AD1 ------> ADC1 --> Bit 0 AD2 ------> ADC2 --> Bit 1 AD3 ------> ADC3 --> Bit 2
0 bis +12Volt Ausgang 5 Analog 0 bis +12Volt Ausgang 6 Analog 0 bis +12Volt Ausgang 7 Digital 1 Bit +12Volt Schweißstromquelle: Eingang 1 Digital 1 Bit +12Volt Eingang 2 Digital 1 Bit +12Volt Eingang 3 Digital 1 Bit +12Volt Eingang 4 Digital 1 Bit +12Volt Eingang 5 Digital 1 Bit +12Volt Eingang
-
Thread
DCF77 Auswertung (ein bisschen anders)
#5693361: > (M)ein GPS-Empfänger möchte schon bei gutem Wetter auf der Fensterbank > innen sein Bit "Stabile Zeit" nicht setzen. Kannst du das mal in NMEA0183 ausdrücken oder wo liest du so ein Bit bei einem GPS-Empfänger ab?
#5693717: >> (M)ein GPS-Empfänger möchte schon bei gutem Wetter auf der Fensterbank >> innen sein Bit "Stabile Zeit" nicht setzen. > Kannst du das mal in NMEA0183 ausdrücken oder wo liest du so ein Bit bei einem GPS-Empfänger ab? Lange ist's her ... ich suche jetzt nach und finde es im Datenblatt
-
Thread
ATmega 644v und SPI: Problem mit 16-Bit
dataL ); // 2 Bytes zu einem Wert zusammenfuegen data16 = data16 & 0x0FFF; // die ersten 4 Bits zu 0 setzen, da die Daten nur in den letzten 12-Bit sind printf("%.2f\n", (data16 * 1.22 / 1000)); // Umrechnen in "Volt" und ausgeben return 0; } } [/c] Nach meiner Theorie sollte
Daten, die ich erwarte (Wert seiner Versorgungsspannung). Wo liegt mein Fehler? In den ersten 8Bits setze den R/W-Bit auf "Read" (Bit7), setze den zero-Bit auf 0 (Bit6), und setze danach die Adresse des auszulesenden Registers (Bit5-0). In den nächsten 8Bits schicke ich einfach Nullen. Danach wird
-
Thread
4x20 Zeichen mit KS0066 funktioniert nicht (4-Bit)
setzen CALL LCD_command_8 ; LCD-Kommando in 8-Bit CALL WAIT_15ms LDI temp, 0x30 CALL LCD_command_8 CALL WAIT_15ms LDI
data bit 3 #define LCD_DATA0_PIN 3 *< pin for 4bit data bit 0 #define LCD_DATA1_PIN 4 *< pin for 4bit data bit 1 #define LCD_DATA2_PIN 5 *< pin for 4bit data bit
-
Thread
9-bit SPI mit ATMega?
das in der Tat auch komplett zu Fuß machen. Aber das wäre ein Ansatz. Alternativ erst nach dem 7. bit vom ersten Byte CS setzen. Ist aber beides nicht mehr so schön wie Hardware SPI. Gruß, Norbert
ein getaketes Schieberegister. > Stimmt, und ? > Nimm eine 16 Bitvariable. > Pack deine 9 Bit in die letzen 9 Bits rein. > Dann schick über die SPI alle 16 Bit raus. > Damit stehen automatisch die gewollten 9 Bit im Empfangsregister von > Display. > Die ersten 7 bis sind dann einfach auf
-
Thread
Ethernet-Protokoll für LED-Controller "Linsn"?
goto=new#3945839 Warum ich das hier schreibe? Es geht mir um gleichmäßige Helligkeitsstufen. Ich setze erstmal 9 Timeslots um und kann dann 32 also 5 Bit "echte" (logarithmische) Helligleitsstufen. Im Bild: * Spalten = Helligleitsstufen, * Zeilen = Zeitschlitze nosilent schrieb im Beitrag
LED Module angeschlossen, bis zu 4 Ausgänge) steuert (und somit die Datengeschwindigkeit). Die 24 bit sind aber linear. Bei geringerer Modulanzahl sind natürlich mehr lineare Bit möglich.
-
Thread
Zweite Zeile LCD Display
wenn Du im 4-bit-Modus bist, musst Du immer 2x4 Bit (HI-LO) übertragen, damit der Befehl komplett ist. Du übeträgst nur 1x 4 Bit. Steht alles bei sprut unter "Beispiel für eine Initialisierung mit 4-Bit Interface
Fussgänger ... Probier mal folgende Muster, damit initialisiere ich immer: b'00110000' ; 8-bit-interface b'00110000' ; 8-bit-interface b'00110000' ; 8-bit-interface b'00100000' ; 4-bit-interface b'00101000' ; 4-bit / 2-zeilig / 5x8 b'00000110' ; cursor increase, display shifted b'00001100
-
Thread
Attiny25 Interrupt wird (selten) ingnoriert
man etwa auf sowas: Ok, hast Recht, so gehts. Warum man aber für die CTC-Funktion eines der PWM-Bits setzen muss, obwohl es extra ein CTC-Bit gibt, erschliesst sich mir nicht direkt und ist auch nicht besonders logisch. Egal, jetzt gehts, war sowieso eine Ausnahme, dass ich den "besseren" T1 als schnöde
H.Joachim S. schrieb im Beitrag #5865596: > Warum man aber für die CTC-Funktion eines der PWM-Bits setzen muss, > obwohl es extra ein CTC-Bit gibt, erschliesst sich mir nicht direkt und > ist auch nicht besonders logisch. Da gebe ich dir sowas von vollkommen Recht, das glaubst du garnicht.
-
Thread
Arduino und AVR: setzen der Lock und Fusebits im Code?
verwechseln das ja), die offebar die Arduino-IDE aus dem Quelltext lesen soll und damit avr-dude Parameter setzen.
bootloader.high_fuses=0xdf atmegasa16.bootloader.extended_fuses=0x05 ... [/pre] Das Schreiben der Bits erfolgt dann mit dem Schreiben des Bootloaders. leo
-
Thread
Interner Pullup Widerstand, Buttonansteuerung klappt nicht
); } int button_is_pressed() { /* the button is pressed when BUTTON_BIT is clear */ if (bit_is_clear(BUTTON_PIN, BUTTON_BIT)) { _delay_ms(25); if (bit_is_clear(BUTTON_PIN, BUTTON_BIT)) return 1; } return 0; } // sendet ein Datenbyte an
output */ #define BUTTON_PIN PINB /* PINx - register for button input */ #define BUTTON_BIT PB0 /* bit for button input/output */ #define LED_PORT PORTB /* PORTx - register for LED output */ #define LED_BIT PB1 /* bit for button input/output */ #define LED_DDR
-
Thread
AtMega 48 Timmer
nächstes Element laden // Schleife über 6 Bit/Eingangsbyte for (bit_count_in=0; bit_count_in < 12; bit_count_in++) { if (byte_in & 0x0200) byte_out |= mask_out; // Prüfe Bit #12, wenn ja in den Ausgangsdaten setzen
nächstes Element laden // Schleife über 6 Bit/Eingangsbyte for (bit_count_in=0; bit_count_in < 12; bit_count_in++) { if (byte_in & 0x0200) byte_out |= mask_out; // Prüfe Bit #12, wenn ja in den Ausgangsdaten setzen
-
Thread
#define Ports
; MPLEX_ON; } while( 0 ) [/C] bzw. aus den Zellen Makros das Setzen und Löschen der Multiplexer Bits rauszulassen.
{ .... // // Fuer die Multiplexer die Adresse setzen setAddress( count ); //??Wenn der Counter bis 24 zählt, woher weiss er dann welches move_bit er benutzen soll? oder bewegt der alle Bits und ich raff es nur nicht weil ich die Funktion darüber
-
Thread
20Euro Embedded System mit ARM, 128MB ram und 256MB Flash
Woher bekommst Du den Treiber für das Display ? >>>- OS : Windows 2000 SP4, Windows XP SP2 (32bit), Windows Vista & 7 (32bit/64bit)
zumindest erklären warum es nicht geht. Also habs raus warum es nicht geht, der NAND von Dir ist ein 16Bit Nand. Die 88F6281 kann aber nur 8Bit NAND Module ansprechen. Müsstest nach einem 8Bit NAND schauen.
-
Thread
Cypress FX3 USB IC
betragen. (Ich verwende momentan einen Virtex 5) Ich lege beim Schreiben demnach die Daten an den 32Bit breiten Datenbus an. Den Datenbus stelle ich mit Hilfe des SLOE# Signals auf Eingang demnach denke ich das ich SLOE# auf '1' setzen muss. Das Signal SLRD# muss auf '1' gesetzt werden. Wenn ich dann
2Bit und 5 Bit sind die Breite des Adress-Bus am GPIF II. 2 Bit ist der normale, mit dem man maximal 4 Threads ansprechen kann. Bei dem 5 Bit ist es halt eine spezielle Frickel-Geschichte, mit der man zyklisch
-
Thread
Unbenutztes Register im 8-Bit Atmel?
Es gibt ja genug Teilnehmer hier. Wenn jeder ein Bit auftreibt -- oder auch nur ein halbes, sind genug Leute hier --, dann haben wir rucki-zucki die erforderlichen 16 Bits zusammen! Ich fang mal an: Das T-Bit im SREG. Wird nicht gebraucht. Rede
rjmp-Sprungziel angeben, ...? > Ab 16 KiB Flash muss dafür ein > jmp verwendet werden, der 32 Bit braucht, demnach sind die Vektoren 2 > Words (32 Bit) groß. Also jetzt z.B. beim Atmega16 mit 16KB Flash? Aber da sind laut Datenblatt zwischen zwei Interruptvektoren doch auch nur 2 Bytes Platz
-
Thread
Suche besseren C-Code
ist mir Michael noch zuvor gekommen...:) Die Lösung sieht aber auch etwas anders aus. Falls nur 11 Bit zum Auslesen sind, dann reicht eine 16-Bit-Variable. Je nach Hardware müsste man vor dem Setzen von PinClk die Daten zuerst auslesen. Kenne das Verhalten Deiner Hardware aber nicht. Je nach Compiler
Man kann auch ohne Schieben auskommen. Angenommen, man möchte im Ergebnis Bit 0 setzen, wenn in der Quelle Bit 5 gesetzt ist: Data |= (Quelle & 0x20) ? 1 : 0; (oder für die Bitzählfreunde unter uns) Data |= (Quelle & (1 << 5)) ? 1 : 0; Wobei man sich natürlich
-
Thread
Lichterkette auf Timer umbauen
) {} // Aufruffrequenz 0,25 Hz void zeit_abwarten() { MCUCR = BIT(SE) + BIT(SM1); // Power-Down wählen sleep_cpu(); // und stoppen bis WDT aufweckt } int main(void) { volatile uint16_t n; CLKPR = 0x80; CLKPR = 0x8; // Vorteiler
CPU-Takt = 31,25 kHz DDRB = 0x1f; // alle Pins als Ausgang und auf GND WDTCR = BIT(WDIE) | BIT(WDP3); // Watchdog-Intervall auf 4 s per Interrupt sei(); // ISR zulassen while(1) { PORTB |= 0x10; // PB4 Setzen n = PRO_STUNDE
-
Thread
Neue 8-Bit Tinys vorgestellt: 417/814/816/817 Gesperrt
neuen teuren Programmer/Debugger zu benötigen Wäre ja mal ein Grund für diese "Bastler" sich 8-Bit Alternativen anzusehen, für die es keinen Programmer braucht, und das Debugging schon ewig über SWD geht: http://www.silabs.com/products/mcu/8-bit/Pages/8-bit-microcontrollers.aspx
M. K. schrieb im Beitrag #4786140: > Ein 12 bit Timer...das ist ja mal was ganz was neues... > Ja, zusätzlich zu den zwei 16-Bit Timern. Ein 12-Bit *ADC* hätte mich gefreut. Bernd_Stein
-
Thread
EMS > Adapter > NetIO > Raspi
aktuellen Werte ausliest und dann die geforderten Hexwerte "E7" und "DC" in Binärzahlen umrechnet: hight bit "DC" = 11011100 low bit "E7" = 11100111 und dann jeden Wert INVERTIERT in die angehängten (Bildausschnitt) 2 Zeilen von Ponyprogs/Configuration and Security Bits einträgt also: nix nix haken nix
wert!!! Daran lags. Problem ist: Bei mir läuft der AVR mit 20 MHz. Das hat in der Berechnung von BIT_TIME in ems_uart.c zu einem berechneten Wert von 260 geführt - ist natürlich zu viel für 8 Bit. Drum war bei mir der Break dann auch so kurz. Als Quick-und Dirty-Hack habe ich BIT_TIME halbiert
-
Thread
DCF77 ausgefallen
Hardware-Ausfall bei Meteotime irgendwann am Nachmittag auch so aus. Aber ich bin auch dafür, dass man die Bits sinnvoller nutzt. Selbst eine 14-Bit Minuten-Marke wäre schon nützlicher ;)
mit der Wettermaschine" beliebig den Luftdruck von 1013mbar auf 1009mbar oder sogar noch tiefer setzen. Und niemand sieht's kommen (und wieder gehen). Ein wahrlich untragbarer Zustand. Die fünfzehn '0' Bits sind eine geheime Nachricht aus dem kämpfenden Untergrund, dass die Normalbevölkerung NULL
-
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
Problem mit I²C-Device
, also die steigende Flanke für das Übernehmen des letzten Bits übernommen. Es kommt der nächste State, indem das ACK des Slave analysiert werden soll. Also setze ich SDA auf Input und takte ein Bit raus. Interrupt -> In der Statemachine wird das LSB des Empfangspuffers
liegt ein ACK (also 'low') vor. Device hat geantwortet. Ich schreibe das Config-Byte in den Puffer, setze SDA auf Ausgang und takte 8 Bits raus. In der Zeit wieder in die main(). Interrupt -> Wieder ACK abfragen, also SDA auf Eingang, 1 Bit raus. Interrupt -> ACK vorhanden. SCL ist wieder 'high'.
-
Thread
LCD im 4-Bit Modus an nur einem Port betreiben
Code fällt mir auf, daß so etwas dort eigentlich garnichts zu suchen hat: #define E_H P6OUT |= BIT6; #define E_L P6OUT &= ~BIT6; #define RW_H P6OUT |= BIT5; #define RW_L P6OUT &= ~BIT5; #define RS_H P6OUT |= BIT4; #define RS_L P6OUT &= ~BIT4; Also mache es anders, nämlich so, daß
ist die "Konstante" in der Spezifikation. Jetzt käme einer auf die Idee und meinte, wenn Portbit Bit4 bis Bit7 genommen würden, wäre das schon gelungen. Genauso kann ich alles beliebig setzen an Portbits am µC, Hauptsache es korrespondiert mit dem tatsächlich verwendeten Pinout sowohl des LCD als auch
-
Thread
sbr,cbr.sbrs,sbrc
aber wie kann ich denn nun z.B nur das Bit nummer 4 im register 16 (r16) setzen? ohne die anderen Bits zu beeinflussen?
,bit1 ;bit1=1 sbr temp,bit0 ;bit0=1 ich will die einzeln setzen und nicht zugleich ;Stimmt das nun so? oder ist das bit0 das bit1? bit_abfragen: sbrc temp,bmask_0 ;spring wenn bit0=0 rjmp end_frage
-
Thread
MSP430 PIN-Abfrage immer True
Zeile: >P1SEL &= ~BIT1 + ~BIT2; // P1.1/.2 Selected sicherlich möchte der TO hier die beiden select-Bits auf Null setzen, aber: BIT1: 00000010 ~BIT1: 11111101 BIT2: 00000100 ~BIT2: 11111011 11111101
USB-Verbindung über einen 1k Widerstand. wv schrieb im Beitrag #3822359: > Die Interrupt-Enable-Register-Bits braucht man auch nicht setzen, da > hier die Interrupts garnicht mit einer Interrupt-Routine behandelt > werden, es wird ja nur der P1IN in der Hauptroutine abgefragt, das hat > mit Interrupts nichts
-
Thread
AVR Bootloader
ja nur aufwärts zählen. Der Assembler meckert hier, weil für ihn die Konstante intern mit bis zu 32bit dargestellt wird, was mit dem Minus davor immer zu 32bit führt, Du diesen Wert aber in ein Register (8bit) laden möchtest. Das Ergebnis ist aber in jedem Falle richtig. Jörg
habe sehe ich den Wald vor lauter Bäume nicht mehr. Also ich stell mir das ganze so vor: Ich setze per ISP zuerst die richtige Fuse-Bits und übertrage dann ein Bootloader. Dieser wird beim reset ausgeführt, konfiguriert die UART und wartet dann kurz ob er ein bestimmtes Byte empfängt, ansonsten
-
Thread
Wie nennt man dieses Bit-Encoding Verfahren?
für die einzelnen Bits verwendet wird, da > es mir nicht geläufig ist. Aus meiner Sicht: Bescheuert - ein Bit ist ein Bit und setzt sich nicht aus 3 Bit zusammen. Vermutlich hast Du irgendetwas "fehlinterpretiert".
Hugo H. schrieb im Beitrag #6677243: > Aus meiner Sicht: Bescheuert - ein Bit ist ein Bit und setzt sich nicht > aus 3 Bit zusammen. Das nennt sich Encoding und ist die Abbildung von der Signal-Ebene in die Bit-Ebene. Normalerweise wird hier z.B. der Manchester Code, SDLC
-
Thread
Programmiersprache - C oder Assembler?
vorweg. Kann der UART mit Nutzdaten gefüttert werden, die Start und Stoppbits eigenständig dazu setzen? Oder müssen diese Bits von Hand mitprogrammiert werden? Danke!
vorweg. Kann der UART mit Nutzdaten gefüttert > werden, die Start und Stoppbits eigenständig dazu setzen? Ja. > Oder müssen > diese Bits von Hand mitprogrammiert werden? Nein. Näheres im Datenblatt des verwendeten Controllers.
-
Thread
TWI-Interrupt wird nicht aufgerufen
würde nicht mal etwas bringen, wenn dort ne 1 stehen würde, jedenfalls mit |=. Aber nochmals: Die Bits werden so gesetzt, wie ich es will. Die Frage ist jetzt: Setze ich die richtigen Bits für ein funktionierendes TWI?
Moin, [c] //Prescaler setzen TWSR = 0x02; //Bit-Rate setzen //für ~100kHz : 0x05 bei Prescaler = 2 TWBR = 0x05; //Start senden TWCR = (1<<TWINT) || (1<<TWSTA) || (1<<TWEN) || (1<<TWIE); [/c] damit sollte eine Start-Condition
-
Thread
Zeichnen eines Punktes mit LCD_Plot_Point
─ ┴────┴ ─ ─ ─ ┴────┴────┘ [/pre] Um ein einzelnes Pixel an einer beliebigen x-y-Position zu setzen, muss in ydots genau 1 Bit an der gewünschten y-Position gesetzt sein. Um zu verhindern, dass beim Schreiben dieses Bitmusters die vertikal benachbarten Pixel gelöscht werden, muss das bestehende
Yalu X. schrieb im Beitrag #5935034: > Um ein einzelnes Pixel an einer beliebigen x-y-Position zu setzen, muss > in ydots genau 1 Bit an der gewünschten y-Position gesetzt sein. Um zu > verhindern, dass beim Schreiben dieses Bitmusters die vertikal > benachbarten Pixel gelöscht werden, muss das bestehende
-
Thread
Bildverarbeitung/Auslesen CMOS Sensor
Idee. Aber gut, zur Kamera: MT9-Module gibt's z.B. bei EBay für ca. 20-30 Euro, allerdings mit 8Bit. Ein einfaches I2C-master-Modul reicht, um die Controller-Parameter zu setzen. (hab ich mit einem dieser Boards mal gemacht, ist kein grosser Aufwand). Zu USB: Ich kenne das TZEX-Board nicht,
Histogramm vom zweiten Bild. WR_IMG = '0' heißt, dass gerade das erste Bild geschrieben wird. Ist das Bit gesetzt, wird das zweite Bild geschrieben. Folglich müsste ich doch wenn ich das oberste Bit der BRam Adresse mit dem WR_IMG Signal setze auch das Histogramm für das erste oder zweite Bild schreiben
-
Thread
LCD Initialisierung W162B-N3LW
DelayUs(15000); // Verzögerung indestens 15Ms LCD_Nibble(0x3); // Interface auf 8-Bit setzen DelayUs(5000); // Verzögerung mindestens 5Ms LCD_Nibble(0x3); // Interface auf 8-Bit setzen DelayUs(5000); // Verzögerung mindestens 5Ms LCD_Nibble(0x3); // Interface auf 8-Bit setzen DelayUs(5000); // Verzögerung mindestens 5Ms LCD_Nibble(0x2); // Interface auf 4-Bit setzen DelayUs(5000); // Verzögerung mindestens 5Ms LCD_cmd4(0x28);
-
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
AVR: Bit-Abfragen und -Zuweisungen an einzelnem Port
das 1 Bit zuätzlich setzen und dann das so manipulierte Byte wieder insd DDRB zurückschreiben. Der Effekt ist, dass bereits bestehende Bits in DDRB (die du so verschämt mit XXXXXX bezeichnet hast) garantiert
willst du haben! Du möchtest dich davon befreien, dass du dir merken musst, wie die restlichen XXXXXX Bits gerade stehen, wenn du das Bit 0 auf 1 setzen willst. Denn solche Dinge sind ansonsten sehr fehleranfällig. Heute weißt du noch, dass du bei DDRB = 0b00000001; die höherwertigen Bits alle auf
-
Thread
Verzweifelt keine Anzeige am LCD
dran um diesen Codeteil zu verstehen. sbi PORT_LCDen,LCDen cbi PORT_LCDd7,LCDd7 ;Bit 7 löschen sbrc tmp0,3------> Bit3 ; Den nächsten Befehl überspringen wenn bit3=0 sbi PORT_LCDd7,LCDd7 ;Bit 7 setzen cbi PORT_LCDd6,LCDd6 ; Bit 6 löschen sbrc tmp0,2------->Bit2 ;den nächsten Befehl überspringen wenn bit2=0 sbi PORT_LCDd6,LCDd6 ;Bit sechs setzen cbi PORT_LCDd5,LCDd5 sbrc tmp0,1--------------------------->Bit1 sbi PORT_LCDd5
-
Thread
XMega PIN setzen - anfängerfrage
SPI_PORT.OUTSET = (1<<SPI_SCK); hätte das hier die selbe funktion und würde NUR die entsprechenden Bits im OUT register setzen?
SPI_PORT.OUTSET = (1<<SPI_SCK); > > hätte das hier die selbe funktion und würde NUR die entsprechenden Bits > im OUT register setzen? Ja.
-
Thread
Hilfe bei Lock Bits
Hallo, vielleicht kann mir jemand helfen. Ich habe gehört, dass man mit den Lock-Bits sein Programm auf den AVR schützen kann. Gleichzeitig habe ich aber auch gehört, dass es dazu kommen kann, dass man den AVR nicht mehr programmieren kann. Also was stimmt denn nun und was bedeuten die
>zu Mode2 und Mode3: Heißt das, wenn ich den 2 oder 3ten Mode setze kann >ich den AVR, falls noch ein Bug im Code ist wegschmeißen, da ich den ja >nicht mehr programmieren kann?!?! Wenn du ihn löschst kannst du ihn neu programmieren.
-
Thread
Welchen Mikrocontroller für Millisekunden-Stoppuhr?
AVR Datasheet: "Two 16-bit Timer/Counter Type B (TCBn) can be combined to work as a true 32-bit input capture." Damit kann man sehr lange Millisekunden zählen.
Die > 32-Bit CPU ist keinen Verschwendung, weil man für die 32-Bit Zähler > nicht aufpassen muss. ... Bauform B. (bauformb) hat den Mikrocontroller STM32C011J4M6 vorgeschlagen. Der scheint die von mir gestellten