-
Thread
Abschlussprojekt
Eine Multiplikation mit 128 = 2^7 macht man besser mit Schiebe-Befehlen. In diesem Fall 7 bit nach links schieben. Aufpassen bei 16bit.
schrieb: > Einfach mal vergleichen, was schneller ist. > > Ach ja, ich glaube MUL arbeitet nur mit 8bit. 8 * 8 -> 16 Bit Ergebnis Für ihn perfekt, wenn er die Register frei hat.
-
Thread
Einzelne Pixel mit S1D13305 (SED1335) setzen
Der 13305 kann nur Byteweise schreiben/lesen. Du musst also ein Byte lesen, das entsprechende Bit in dem Byte setzen und dann das Byte zurückschreiben.
liegende Pixel. Bisher alles soweit klar ? OK, dann weiter: Um jetzt 1 Pixel (=1bit) zu setzen, musst du die anderen Bits beibehalten und nur dieses eine setzen. Dies geschieht durch eine ODER Operation. Du musst also das entsprechende Byte lesen, das eine Bit setzen und das ganze
-
Thread
MMC/SD-Karte mit FAT16 an AVR
that ones relevant to MS Operating Systems. Value Description 00h Unknown or Nothing 01h 12-bit FAT 04h 16-bit FAT (Partition Smaller than 32MB) 05h Extended MS-DOS Partition 06h 16-bit FAT (Partition Larger than 32MB) 0Bh 32-bit FAT (Partition Up to 2048GB) 0Ch Same as 0BH, but uses
gravierenden Fehler. Da mit dem Sendebyte auch ein Byte empfangen wird, bleibt bzw. wird das UDRE0-Bit gelöscht, und beim nächsten Funktionsaufruf bleibt das Programm in der while-Schleife hängen. Um dieses Bit zu setzen, muß ich das Empfangsbyte lesen. Das habe ich nun ergänzt: [pre] void sd_raw_send_byte
-
Thread
Wieso Wert nicht gleich auf 0 setzen?
Nabend, Wieso verundet man das Register mit 0? Was macht das für einen Sinn? [c] // a interrupt is only generated if a message was transmitted or received if (CANSTMOB & (1 << TXOK)) { // clear MOb CANSTMOB &= 0; CANCDMOB = 0; } [/c]
-
Thread
I2C Display einfache Frage
Den Versuch mit dem Setzen der Portpins einmalig auf 0 und umschalten nur über DDR habe ich gemacht und funktioniert: [code] #define i2c_setpins_low() { i2c_port &= ~(1<<sda_bit); i2c_port &= ~(1<<scl_bit); } #define
hat denselben Inhalt wie das Display selbst. Hier mußt du Funktionen schreiben, die ein einzelnes Bit im Byte eines Array setzen bzw. löschen. Wenn du das Bild in diesem Array aufgebaut hast, schickst du dieses über I2C komplett an das Display. ------------------------------------------- By the
-
Thread
Fusebits bei ATmega 88 setzen.
noch mit den internen Tackt arbeiten und nicht mit den 20 MHz Quarz. Wie kann ich die Fusebits setzen und sicher gehen dass ich den Mikrocontroller mit den falschen setzen der Bits nicht zerstöre? Ich habe diesen Fusebit Rechner nicht verstanden. http://www.engbedded.com/fusecalc/ MfG Marcel
achten, dass nicht mehr als 4 Volt anliegen, sonst gibts Fehler. Erkennt man daran, dass nach dem setzen der Fusebits auf einmal alle Lockbits gesetzt sind. für extenen 20 Mhz Betrieb mit Standardquarz folgende Fusebits setzen (Ponyprog): BOOTSZ1, BOOTSZ0, EESAVE, SUT0 alle anderen aus Ehrhardt
-
Thread
Atmega168 Fuses setzen?
jemand noch ein anders Tool mit dem ich die Fuses beim ATmega168 komfortabel setzen kann (außer PonyProg)?
Hallo, ich bitte um eure Hilfe. Ausversehn habe ich den FuseBits des ATMega168 verstellt und damit den Controller lahm gesetzt. wie kann ich mit BASCOM bzw. mit Boot Loader den Controller wieder zum Leben erwecken. Danke Tan Thai
-
Thread
Pollin - Receiver-Mainboard mit Twin DVB-[T,C] Tuner, NXP PNX8950EH
compatible bus driver via PrAcc (JTAG part No. 1) start: 0x00000000, length: 0x20000000, data width: 8 bit start: 0x20000000, length: 0x20000000, data width: 16 bit start: 0x40000000, length: 0x20000000, data width: 32 bit [/code]
um zu schauen, was da über den I2C + GPIO zu dem µC läuft. gruß Laszlo [1] [code] bit5 ------ | | bit4 | | bit 0 | bit6 | ------ | | bit3 | | bit 1 | | ------ . bit 7 bit2 [/code]
-
Thread
ATmega8535 Port setzen ?
"irgendwie läst sich der Port nicht einschalten" Du setzt nur das bit 0, alle anderen bleiben auf low, ich hoffe ich versteh' dich richtig dass du den ganzen PORTD (bit 0..7) setzen willst?
-
Thread
Bits shiften - ich verstehe es nicht.
(T v) { static_assert(Bit1 != Bit2); static_assert(Bit1 < sizeof(T) * 8); static_assert(Bit2 < sizeof(T) * 8); constexpr T mask1{(1 << Bit1)}; constexpr T mask2{(1 << Bit2)}; constexpr T mask{mask1
0x40" und "Setze Bit 6"? Beides unter der Voraussetzung, das der Wert vorher genullt wurde... Richtig: keiner. Nur ist der Compiler so dämlich das er das nicht merkt und fröhlich den (leeren) 16-bit-Wert "0" auf
-
Thread
RE bit beim KS0073
RE ist kein Pin am Display, sondern ein Bit das man mit dem Function Set Befehl setzen oder löschen kann.
holger wrote: > RE ist kein Pin am Display, sondern ein Bit das man > mit dem Function Set Befehl setzen oder löschen kann. Das sehe ich jetzt auch... Hab grad mal das Datenblatt durchgeblättert.
-
Thread
Letzter Hilferuf AT91SAM7S - PWM oder PCK
Mal noch was ganz anderes: Beim Setzen der High-Low Zustände auf den Pins: es gibt doch 2 Möglichkeiten: CODR + SODR: da lösche ich doch erst mal die Bits mit CODR, die ich nicht mag und mit SODR setze ich die, die ich mag
diesen Ton ganz Leise. Im Vordergrund entsteht ein kontinuierlicher Ton durch die Störgeräusche beim Setzen der Leitungen am SID... Momentan sieht der Code so aus: [c] #include "Board.h" #include "AT91SAM7S256.h" #define LED1 BIT17 #define LED2 BIT18 #define BUTTON1 BIT19 #define
-
Thread
Frequenz runter setzen ohne Abtastgenauigkeit zu verlieren
Hallo Leute, ich habe eine Frage zu einem Thema, bei dem ich mich gerade einarbeite. Geht mehr drum einen Überblick zu bekommen. Und zwar brauche ich aktuell eine Frequenz von f_max = 100 MHz um im Spektralbereich einen Abtastwert pro Meter zu bekommen. Nehme ich f_max = 50 MHz habe ich nur alle 2 Meter einen... Interessant wäre es zu wissen, ob und wenn ja welche Möglichkeiten es gibt, auch bei geringerer Frequenz jeden Meter einen Abtastwert zu bekommen. Hoffe ich habe mich verständlich ausgedrückt. Danke für jede Hilfe Grüße
-
Thread
AVR gegen den Rest der Welt
VErfügbar. Mit derselben günstigen Hardware und derselben Entwicklungsumgebung kann man vom kleinen 8Bit sechspinner über die 16Bit mit DSP Funktionalitäten bis hin zum 32Bit mit MIPS Kern alles Programmieren und bei den meisten PICs auch debuggen. Als Bastler hat man eine hohe Verfügbarkeit und insbesondere
mit einem Controller als Slave... Klar kann man SPI puffern. Wenns sein muss, mit beliebig vielen Bits.
-
Thread
EleLa - Elektronik Lagerverwaltung V4.0
Sorry, ich kann die 32 Bit Version von EleLa erst am Montag erstellen.
Wenn der Client 64 Bit ist, dann ist die EXE für 64 Bit richtig. Dennoch sollte die SQLite SO geupdated werden.
-
Thread
1602 LCD mit ATmega8535 und Bascom läuft nicht
nicht. Es kann z.B. schon im 4Bit Mode sein und auf das 2. Nibble warten. Daher muß man es erstmal in einen definierten Mode setzen, um es dann zuverlässig auf 4Bit setzen zu können. Man kann es mal durchspielen. Erst nach dem 3. Befehl
Peter D. schrieb im Beitrag #6991057: > Der Grund für das 3-malige Setzen in den 8Bit-Mode ist folgender: > Der AVR kann ja ein Reset nicht nur bei Power-On ausführen, sondern z.B. > über eine Resettaste vom Benutzer. Hi, das Problem ergibt sich immer, wenn LCD und
-
Thread
"NUCLEO"-Borads von GigaDevice
verhält sich genau so wie man es erwarten würde: Löschen: FMC freischalten mit dem Unlock-key, PER bit setzen, adresse setzen, START bit setzen auf BUSY bit warten, LK Bit wieder setzen. Schreiben: FMC freischalten mit dem Unlock-key, PG-Bit setzen, Daten ganz normal an die Adresse schreiben (auch 32-Bit zugriff ist erlaubt, jetzt ist mir auch klar warum, ist ja ganz normales RAM!), BUSY bit warten, nächstes Wort schreiben oder LK Bit wieder setzen. Die Adressen sind ganz normal entweder ab 0x0 oder
-
Thread
MSP430 GPS-Daten von UART0 Probleme
, wie passe ich denn die Register nun am besten an? Soll ich zuerst mittels P3SEL alles auf 0x00 setzen und dann gleich wie oben vorgehen oder muss ich da jedes einzelne Bit auswerten? Was würdest Du machen? Ich weiss, es ist eigentlich ein Murks den Port als UART und SPI zu verwenden, aber geht halt
Also was ich inzwischen gemacht habe: Beim SPI die Bits mittels |= setzen --> funktioniert Die Zeilen wo ich diese ominösen Flags lösche entfernt. --> funktioniert Fazit: SPI und UART1 laufen, UART0 weiterhin nicht. Er spring nie in den Interrupt,
-
Thread
RFM01/02 Basics
Hier initialisiere ich mit 0 1 (Sync Word) Dann sieht der FIFO Reset so aus: cmd: CE 84 Bits ff und fe Null setzen -> FIFO ausschalten und seinen Zähler und Inhalt löschen cmd: CE 87 Bits ff und fe Eins setzen -> FIFO einschalten und Füllen ab
Modul RFM 02 Wie unterscheidet man in der Config ob ich mit FSK oder SDI sende. Also an welchen Bits muss man setzen, ich finde in der Doku darüber nichts.
-
Thread
eigenartiges Verhalten nach setzen eines Fusebits
Hallo Com, ich habe ein Problem. Vorweg genommen- ich bin absoluter Mikrokontroller-Neuling, also nicht böse sein wenn das jetzt ne dumme Frage ist... Also ich möchte einen ATmega8535 mit externem Takt betreiben, dazu habe ich ein 4MHz Quarzoszillator. Also habe ich mit meinem AVRISP MKII über das AVR Studio das Fuse-Bit SUT_CKSEL auf 'Ext.Crystal/Resonator High Freq.;start up time 16k CK +64 ms' gestellt. Das hat nun Folgende Effekte: 1. Ich kann nicht mehr auf den Controller zugreifen, und 2. das Programm läuft nur wenn ich den Ozillatorausgang nicht an XTAL1 anschliesse (das wundert
-
Thread
Propeller Clock
Bits setzen (gelöscht wird nach ;Abarbeitung) ;in "tas" steht jetzt der gültige Tastenzustand, ;in "tfl" die Flags der neu gedrückten, noch nicht abgearbeiteten ;Tasten... ;xl ist
Programmen (in ASM) gibt es grundsätzlich ein (oberes) Register namens "flags", in dem ich einzelne Bits für spezielle Zwecke reserviert habe. Von C habe ich Null Ahnung, aber das könnten Variablen vom Typ Boolean sein. In der ISR setze ich das betreffende Bit: sbr flags,1<<start In der Mainloop überprüfe
-
Thread
16-Bit Zahl auf LCD
Hallo, kann jemand den oberen Code einmal in C für einen Mega8 umschreiben ? Die 16Bit Zahl soll aus dem Zählregister des Timer1 gelesen werden und dann auf einem LCD-Display mit einer 4-Bit-Ansteuerung angezeigt werden. Das wäre sehr nett. Gruß D.
Sonst genau so wie B. Das schwierige war nun, einen geeigneten Zähler zu programmieren. Der einfache 8Bit-Timer0 zählt ja nur bis 255. Da hätte man dann bei jedem Überlauf Variabeln setzen müssen und Gleichungen bearbeiten, damit der Gesamtzählwert angezeigt wird. Also dachte ich mir, nehme ich den Timer1
-
Thread
rechnet der preprocessor in C gcc (AVR) multiplikation aus?
In C kann man sich auch Markos definieren, die das Setzen von Bits leichter lesbar machen. Mein Favorit: [code] #define LED_ON PORTB |= 4 #define LED_OFF PORTB &= ~4; void main() { LED_ON; _delay_ms(1000); LED_OFF; } [/code] Dem
Dies ist sprachlich natürlich korrekt, aber u.U. nicht das was man will, nämlich effizient mehrere Bits auf einmal setzen.
-
Thread
LCD und lesen des AC
auch, jedoch tritt hierbei ein merkwürdiges Phänomen auf, dass ich mir nicht eklären kann. Das DB6 bit ist IMMER HIGH, egal wo der Cursor gerade steht. Sprich, setze ich den Cursor an die Position 0x05, und lese ihn gleich wieder aus bekomme ich den wert 0b01000101 zurück. Gibt es hierfür eine logische
Naja, um das Kommando zur Abfrage der Adresse zu schicken, fummelst du an dieser Stelle mit den Bits und Ports des LCD rum. Für jedes andere Kommando (Adresse setzen, Cursor löschen...) müsstest du das dort jeweils wieder machen. Das ist doch ungeschickt: - an jeder dieser vielen Stellen steht
-
Thread
Signalerkennung
einzeln abfragen muss. Man kann auch den kompletten PINB hernehmen und alle nicht interessierenden Bits wegmaskieren (gezielt auf 0 setzen). Dann bleiben Zahlen (weil es ja 3 Bits sind) im Bereich 0 bis 7 übrig (weil die Pins die Bits 0 bis 2 sind). Und jede dieser Zahlen ist spezifisch für eine ganz
/ Port B, Pin 0 auf High (5 V) setzen, LED an } if ( bit_is_set ( PINC,2 ) ) // Taster gelöst, 5 V wieder über Pull-Up an C2, HIGH { PORTB = 0b00000000; // Port B, Pin 0 auf LOW (0 V) setzen, LED aus
-
Thread
Nokia 6100 Grafiklibrary die Zweite
Werte umfassende Tabelle zusammen. Diese Tabelle enthält also nach ihrer Fertigstellung 256 Werte a 12Bit. Der Vorteil dabei liegt daran das man nur sehr wenige Daten an das Display senden muß, der Nachteil ist aber der Fakt das man nicht frei und beliebig ALLE 256 Werte der internen Tabelle setzen kann
musst also 2 Dinge machen: 1.) glcd_Colors[] muß die korrekte Größe besitzen, dazu glcd_ColorTableBits in deinem Falle auf 4 setzen, da 2^4 = 16 ist. 2.) nun musst du natürlich vor dem Zeichnen einen Fontzeichens dieses glcd_Colors[] Array mit den richtigen Farben füttern. Diese Vorgehensweise der
-
Thread
Sprachausgabe mit AVR
SD-Karte mit FAT16/32 Dateien im Root-Verzeichniss, Unterverzeichnisse auch möglich -WAVE-Dateien 8bit/8khz mono Code hat ca. 8kB
Morgen Ingo, eine Änderung ist nicht notwendig. Lege einfach je eine Datei für jeden Pin ab. Bit 0 = 001.wav Bit 1 = 002.wav Bit 2 = 004.wav : Bit 7 = 128.wav läuft super bei mir ! Die "Tasten" sind Taster und werden über den PinChange Interrupt 'abgefragt'. Siehe in "main.c" die Funktion
-
Thread
hd44780 initialisierung
)); // Bits setzen LCD_PORT |= (1<<LCD_EN); // Enable auf 1 setzen _delay_us( 2 ); // kurze Pause LCD_PORT &= ~(1<<LCD_EN); // Enable auf 0 setzen _delay_us
)); // Bits setzen LCD_PORT |= (1<<LCD_EN); // Enable auf 1 setzen _delay_us( 2 ); // kurze Pause LCD_PORT &= ~(1<<LCD_EN); // Enable auf 0 setzen _delay_us
-
Thread
Tiny26 PWM Problem mit Setzen des Compareregisters ?
Du hats dem Compiler auch nicht gesagt wieviel Bit dein PWM haben soll Und den Port als ausgang sehe ich auch nicht. Probier mal das: ================================= Dim A As Byte Dim B As Byte A = 200 B = 100 Ddrb.1 = 1 '
vorab schonmal danke, jedoch: der tiny 26 hat nur eine 8bit pwm - gebe ich den befehl in die zeile mit ein, kommt unknown config parameter [pwm]. wegen data direction: Config Portb = Output 'LED´s / ISP stand weiter
-
Thread
Problem mit Ansteuerung MAX7221
Hallo, ich denke dein Problem ist du übergibst nur 8 Bit und setzt dann LOAD wieder auf High. Das Verfahren ist folgendes: 1. LOAD auf Low schalten 2. 8 Bit für die Registeradressierung reintakten 3. 8 Bit für das Datum reintakten 4. LOAD auf High
Ähm, ich sende übrigens 16Bit, nicht nur 8, und der CS bleibt low während der ganzen Zeit void spiSendByte(unsigned char op,unsigned char val) { P2OUT &= 0xFD; // Setze Chip Select 74HCT244 low CS_LOW(); /
-
Thread
PIC18 connected to RN42
durch eine [c]if(PIR1bits.RCIF&&PIE1bits.RCIE) { ... }[/c] ersetzen und das return RCREG; auch rausschmeißen. Peb schrieb im Beitrag #3839556: > Sobald ich RCIE auf "1" setz... kann die RCIF flag nicht mehr gesetzt
Seit ich das "Wake-Up-Bit" auf 0 gesetzt hab ... Kann ich die RCIF nicht mehr setzen.
-
Thread
1 Bit Variabel deklarieren
wenn Du mehr als ein Boolean brauchst, kannst Du ein char definieren und die Bits dann einzeln setzen, löschen und auswerten.
? Welches Target ? Welche Fehlermeldung ? Der Keil C51 für 8051-er kennt jedenfalls den bit Typ. Und der 8051 hat auch direkte Bitbefehle (setzen, löschen, umdrehen, testen usw.). Peter
-
Thread
arduino esp32 32bit/64bit-problem
Visual Studio auch 64 Bit debuggen. Oliver
Joachim B. schrieb im Beitrag #6918132: > aber unter 32&64 bit nur die 1.8.9 1.8.16 geht definitiv mit Win7-32bit
-
Thread
SPI 16-Bit Problem
falsch. Meine Slave Konfiguration sieht wie folgt aus: [c] void spi_config_slave() { P1SEL = BIT1 + BIT2 + BIT4 + BIT5; P1SEL2 = BIT1 + BIT2 + BIT4 + BIT5; UCA0CTL1 = UCSWRST; // **Put state machine in reset** UCA0CTL0 |= UCCKPL + UCMSB + UCMODE_2 + UCSYNC
> Hat er schon oben mit EOR getan. Korrigiert, sieht es bisher so aus: Master sendet 1 Byte (Bit 8: R/W, Bit 7-0 Register Adresse) Slave antwortet mit ACK_READ oder ACK_WRITE Master sendet H_BYTE_REQUEST Slave antwortet mit oberen 8-Bit des 16-Bit Wortes Master sendet L_BYTE_REQUEST
-
Thread
5 zeilen C code
ist es schneller wenn du 3 while Schleifen hast und du somit nur ein if und kein else hast. Das setzen des Bits ist soweit richtig, du kannst das so machen und musst nicht Toggeln.
immernoch an den Problem von oben. Anstatt einer IF abfrage kann ich doch perm. den Zustand vom Eingang setzen so etwa: bool r ; while(1) { r = P6IN & BIT0; // 6.0 eingang P5OUT = r & BIT1; // 5.1 ausgang } was ist daran falsch ?
-
Thread
Lock bits vs. Clock source auf 8-Bit AVRs
Ich meine die AVR 8-Bit RISCs, also z.B. ATMEGA. (Nix 8051 oder so).
machst du ein Chiperase, setzt die Fusebits, flashst die Software rein und setzt wieder die Lock Bits.
-
Thread
UART-Fehler :(
Enable TXEN Transmitter Enable UCSZ2 Character Size (Number of Databits RXB8 Receive Data Bit 8 TXB8 Transmit Data Bit 8 */ //Frameformat setzen: 8 Datenbits, 1 Stopbits UCSR0C = 0x86; /* ---- No Funktion UMSEL USART Mode Select (Synch / ASynch) UMP1 Parity Mode UMP2
//Baudrate einstellen UBRRL = 25; //UCSRA |= (1<<U2X); //UCSRA: Bit "U2x" setzen BRAUCHE ICH DAS?????? while (!(UCSRA & (1<<UDRE))) /* warten bis Senden moeglich */ { } UDR = 'x'; //x zum senden ins Datenregister while
-
Thread
Tiny fuses setzen (15 Zeichen sind Pflicht aber hier unnötig)
ich dache weil in dem Bild fast alle Hacken drin sind muss, ich die im AVR Studio auch alle setzen.... Gibt es im avr t ne Möglichkeit firmware und fuses auslesen zu lassen, damit ich gucken kann ob beim programmieren alles geklappt hat?
ich bei dem Punkt dann auch gekommen nur um dann zu wissen welche bits im twinavr welcher Beschreibung im avr studio entsprechen hat es bei mir nicht gereicht Danke für die Antwort
-
Thread
Bit verschieben VHDL
Achja und was ist der unterschied zwischen bit_vector und STD_LOGIC_VECTOR? Mit dem bit_vector kann ich nicht bit_vector <= bit_vector + 1 rechnen und mit dem STD_LOGIC_VECTOR kann ich nicht STD_LOGIC_VECTOR <= STD_LOGIC_VECTOR rol 1 machen. Wieso
standard_logic kann man tristate verhalten erlangen. du kannst den ausgang damit auf 1, 0 oder hochohmig setzen. bit_vector ist nur 0 oder 1 zum programmieren von solchen countern braucht vhdl aus irgendeinem grund auch std_logic. wieso das so ist, das kann ich dir jedoch nicht erklären. hier mal dein
-
Thread
AVR 32-bit. Externes OLED Display verwenden.
MOSI müssen so konfiguriert werden, dass sie vom SPI-Modul kontrolliert werden; SPI-Mode auf 0 setzen (CPHA=0, CPOL=0) SPI-Frequenz vorerst auf 1MHz oder darunter einstellen; 8 bits pro Transfer (pro SPI-Datenwort) einstellen; Delays zwischen den einzelnen Transfers (Bytes bzw. SPI-Datenwörtern)
du einen Befehl sck_off definieren, der den sck-pin auf 0 setzt. #define sck_off Port_WriteBit( ???, PORT_OFF) etc. Voraussetzung ist aber, dass du zumindest weißt, wie Portpins zu setzen und zu löschen sind.
-
Thread
DAC AD7808 wie register setzen
so gelesen zu haben) andere Register setzen damit der DAC "versteht" was er machen soll. (MD0 MD1 usw.) Habe natürlich die Programmbeispiele im Datenblatt gefunden, leider bin ich zu neu in der Materie um das auf mein Problem umsetzen zu können
Wiso soll er sich mit I2C auseinander setzen? Der DAC hat SPI...
-
Thread
BMP180 I2C Problem?
Bosch-Code beruht heftig darauf, dass die Ergebnisse in 32 Bbit darstellbar sind. Multiplizierst du aber 16 Bit mit 16 Bit, dann kriegst du auch nur ein 16 Bit Ergebnis und keines mit 32 Bit. Du hast die Werte, setz sie in deinen Code ein, lass dir die Zwischenergebnisse ausgeben und sieh dir an, wo du Abweichungen
beruht heftig darauf, dass die Ergebnisse in 32 Bbit > darstellbar sind. Multiplizierst du aber 16 Bit mit 16 Bit, dann kriegst > du auch nur ein 16 Bit Ergebnis und keines mit 32 Bit. > > Du hast die Werte, setz sie in deinen Code ein, lass dir die > Zwischenergebnisse ausgeben und sieh dir an,
-
Thread
ATMega88 8Bit Timer
so ganz schnalle ich das noch nicht. bei timer1 16-bit muss es so sein: [avrasm] ; Timer1 16-Bit vorbereiten ldi temp1, (1<<CS10) ; CS10 setzen: Teiler 1 sts TCCR1B, temp1 ldi temp1, (1<<TOIE1) ; TOIE1: Interrupt bei Timer Overflow sts TIMSK1, temp1 [/avrasm] und bei timer0 8-bit muss es so sein: [avrasm] ; Timer1 8-Bit vorbereiten ldi temp1, (1<<CS00) ; CS00 setzen: Teiler 1 out TCCR0B, temp1 ldi temp1, (1<<TOIE0) ; TOIE0: Interrupt bei Timer Overflow sts TIMSK0
-
Thread
RS485 bus mit Fleury Uart
z.b. EmpfängerAdr,SenderAdr,LängeDaten,Daten....,CRC. 4. Nach dem Empfangen solltest du das MPCM bit wieder setzen. ms
kontrolle. Dein Master sendet ca. alle 600ms einen Frame.Ist die LCD-Lib so schnell dass Du das MPC-Bit rechtzeitig setzen kannst bevor das Frame vom anderen in den Ringbuffer gelangt. ms
-
Thread
Bits schieben und auf Port ausgeben (c)
4 Bit löschhen LCD_PORT |= temp1; // setzen lcd_enable(); temp2 = temp2 + 0x0F; // zweites (unteres) Nibbel holen und nach oben schieben LCD_PORT &= 0x0F; // obere 4 Bit löschhen LCD_PORT |= temp2; // setzen lcd_enable(); _delay_us(42); } [/c] Kann mir villeicht jemand sagen, wie ich das Problem löse, das die jeweiligen
-
Thread
Bitmanipulation, verschieben von Bits, optimierung
Wenn's mehrere Bits zum umsortieren sind: [c] uint8_t vermischt=__builtin_avr_insert_bits (0x04217563, abc, 0); [/c] http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/AVR-Built_002din-Functions.html
Für nur 2 Bits braucht es doch keine Wumme wie __builtin_avr_insert_bits...
-
Thread
Byte auf verteilten Ausgängen ordnen
t außen drauf, wenn du nicht immer jedes Bit einzeln setzen/löschen willst.
Zeno schrieb im Beitrag #5808560: > Setze erst mal alle Ports auf 0 dann fällt schon mal der else Zweig weg Sicher. Auch wenn sich ein bestimmtes bit in Testbyte *nicht* ändert, bzw. dauernd 1 ist, wird am entsprechendem PortPin munter
-
Thread
Art der if-Auswahl nur Geschmackssache?
. Wenn Du C auf AVR programmieren würdest, wüsstest Du, dass eine Zuweisung mit ~(1 << 7) zum Setzen aller Bits ausser Bit 7, oder zum Löschen von Bit 7 per AND völlig normal und gängige Praxis ist. Und genau das ist ~0x80.
Du, dass eine > Zuweisung mit ~(1 << 7) zum Setzen aller Bits ausser Bit 7, oder zum > Löschen von Bit 7 per AND völlig normal und gängige Praxis ist. Und > genau das ist ~0x80. Karl schrieb im Beitrag #5375765: > Wird er nicht: c1 = ~(1<<7);
-
Thread
Ausgang auf "1" schalten, wenn Eingang auf "0" ist
{ if(!(PINC & (1<<PINC6))) { PORTB |= (1 << PB0); //PB0 im PORTB setzen PORTB |= (1 << PB1); //PB0 im PORTB setzen } else { PORTB |= (0 << PB0); //PB0 im PORTB setzen PORTB |= (0 << PB1); //PB0 im PORTB setzen
if(!(PORTC &= ~(1<<PINC6))) { PORTB |= (1 << PB0); //PB0 im PORTB setzen PORTB |= (1 << PB1); //PB0 im PORTB setzen } else { PORTB |= (0 << PB0); //PB0 im PORTB setzen PORTB |= (0 << PB1); //PB0 im PORTB setzen
-
Thread
Neue AVR Familie - AVR-DA
? 8Bit Marktführer mögen sie sein, mehr nicht.
schrieb im Beitrag #6262554: > ... https://www.der-postillon.com/2017/05/aepfel-birnen.html 32-Bit / 8-Bit