-
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
Displayausgabe
|= (data>>(4-LCD_DB)); // Bits setzen lcd_enable(); } //////////////////////////////////////////////////////////////////////////////// // Initialisierung: muss ganz am Anfang des Programms aufgerufen werden. void lcd_init
Datenbyte an das LCD void lcd_data( uint8_t data ) { LCD_PORT |= (1<<LCD_RS); // RS auf 1 setzen lcd_out( data ); // zuerst die oberen, lcd_out( data<<4 ); // dann die unteren 4 Bit senden _delay_us( LCD_WRITEDATA_US ); } ////////////////////////////////
-
Thread
10-BIT-Wert vergleichen
brlo warn2 rjmp weiter warn: LDS temp1, PORTG SBR temp1,1<<alarmbit ; setze bit auf 1 STS PORTG, temp1 rjmp weiter warn2: LDS temp1, PORTG CBR temp1,1<<alarmbit ; setze bit auf 0 STS PORTG, temp1 weiter: ; in Spannung umrechnen ldi temp5
brcs _a10ser st Z+,temp5 ; im Puffer speichern ret ; 16 Bit Wert in Spannung umrechnen ; ; = 16Bitx16Bit=32 Bit Multiplikation ; = vier 8x8 Bit Multiplikationen ; ; adlow/adhigh * temp5/temp6 mul16x16: push zeichen clr temp1
-
Thread
PWM Versuche mit Bascom
Tastenzustand vorheriger Tastenzustand = jetziger Tastenzustand end if PS: Bei einer 8 Bit PWM sind 30 Stufen schon etwas heftig.
In der Schleife ein ein Bit setzen, wenn Du den Taster drückst. Wenn Das Bit 1 ist, die Schleife immer wieder ausführen. Wenn der Taster erneut gedrückt wird UND das Bit immer noch 1 ist, das Bit auf 0 setzen und die Schleife
-
Thread
Effizient Maske für höchstes gesetzes Bit berechnen?
Kürzer, das --i ist hier überflüssig: [c] if (i & (i-1)) { // wenn mehr als 1 Bit gesetzt i |= i >> 1; // untere Bits setzen i |= i >> 2; // ... i |= i >> 4; // ... ++i; // gibt nächsthöhere Zweierpotenz i >>= 1; } [/c] oder ohne Überlauf: [c] if (i & (i-1)) { // wenn mehr als 1 Bit gesetzt i |= i >> 1; // untere Bits setzen i |= i >> 2; // ... i |= i >> 4; // ... ++i; // gibt nächsthöhere Zweierpotenz i >>= 1;
-
Thread
FuseBit Tutorial
ob noch jemand Fehler entdeckt? Das Tutorial soll für ATMega ICs sein und im Moment sind die FuseBit Stellungen für ATMega16 eingezeichnet. Bitte um kurze Stellungnahme, Danke
setz ein link zu http://palmavr.sourceforge.net/cgi-bin/fc.cgi besser gehts kaum. W.
-
Thread
Altium Panel - V-Cut oder Stege?
JLCPCB nicht aus, machen die für sowas kein eignes Panelizing? Andere Hersteller machen sowas, und setzen dann auch die Stege selbst.
Tracks senkrecht durchgegangen, Bild 05 und 06, und die Haltestege erzeugt. Am Ende noch die Mouse Bites angedeutet. Was man vorher noch machen sollte ist den Nullpunkt der Platine auf seiner Lieblingsecke setzen und vorm Panelizer die Einzelplatine auch auf einen sauberen Nullpunkt setzen. Das erleichtert
-
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
Wie addiert man digitale Audiosignale?
, empfiehlt es sich einen akkumulations buffer zu verwenden, der den overflow aufnehmen kann 8->32 bit int. die addition sollte mit vorzeichenbehafteten integern erfolgen. also, wenn die quelle in 8 bit unsigned samples vorliegt: (sample buffer s zuerst auf 0 setzen. i ist sample index.) [c] int
Bit verwenden müsste.
-
Thread
74HC595 am Atmega8 => Verzweiflung
gar nicht erwähnt: Ich habe vorhin Delays in meinen Code gebastelt. Sah dann etwa so aus: - Ein Bit für Serielle Leitung setzen, Serialclock Low - 1 Sekunde warten - serielles Bit halten, Serial Clock High - 1 Sekunde warten - nächstes Bit für Serielle Leitung setzen, Serialclock Low - 1 Sekunde warten - serielles Bit halten, Serial Clock High - 1 Sekunde warten ... nach jeweils acht Bit habe ich den Storage Clock getaktet. Dabei wieder zwischen allen Bitveränderungen eine lange Wartezeit. Das fehlerverhalten
-
Thread
Arduino oder Nucleo
auseinander zu setzen. Die 8bit Controller sind nämlich noch lange nicht tot. Falls du kommerzielle Sachen in geringer Stückzahl bauen willst: Bedenke, dass man die originalen Nucleo Boards nur zum Lernen benutzen darf
Assembler im Zeileneditor schreiben möchte. >Ich vergleiche gerne: >- Arduino Nano Clone (ATmega328, 8bit, 16MHz, 32kB FLASH, 2kB RAM) >- Blue-Pill Board (STM32F103, 32bit, 72Mhz, 64 oder 128kB Flash, 20kB RAM) Der ATmega328 hat auch noch 1 kB EEPROM als Datenspeicher.
-
Thread
TEKWAY DST1xx2B Oszilloskop
Kann es sein, daß der Treiber zur TTScope Software von TEKWAY nur 32-Bit fähig ist? Weiß jemand ob TEKWAY da ein 64-Bit Update plant? Gruss Pete
Nope. Die Software von Hantek ist zwar neuer, aber auch nur 32-Bit fähig. Die haben zwar schon Catalog Einträge für AMD64 im .inf File, aber die Catalog Dateien wie auch ein 64-Bit Treiber sind nicht dabei. Gruss Pete
-
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
APA102-2020 Multiplexen
überlegt, allerdings erhöht sich dadurch die Anzahl der Operationen erheblich. Bei meiner Idee setze ich immer nur 2 Ports vom MCU (kann ich ja jeweils in einer Operation setzen) und Takte dann mit der Clock Line die Daten raus. Bei einem Schieberegister müsste ich erst die Daten an allen 32 Ausgängen
Schnittstelle des mc statt Pins zu toggeln. > > Bei 512 Leds benötigst Du: > > (512 + 2) Frames * 32 Bits/Frame / 512 kbits/s = 32,125ms > Bei 512 LEDs sollte der Endframe >=256 bit sein. Start- und LED-Frames sind 32 bit. 32 Bit fuer den End Frame gelten nur bis 64 LEDs.
-
Thread
Bits anschalten richtig verstanden?
Verknüpft ond dem DDRB zugewiesen. Aber wäre es nicth besser, erst zu lesen? Falls ich noch andere Bits verwende, die unverändert bleiben sollen? Sorry, ich finde das in C ein bischen kompliziert. In Assembler kann ich einfach "SBI DDRB,7" machen, in Bascom "DDRB.7 = 1" ..
In C kannst Du auch statt SBI DDRB,7 // Setze Bit 7 in DDRB auch DDRB |= (1<<7) // Setze Bit 7 in DDRB statt CBI DDRB,7 // Loesche Bit 7 in DDRB auch DDRB &= ~(1<<7) // Loesche Bit 7 in DDRB machen. Die Dinge
-
Thread
Umfrage FPGA-Eval-boards
der Umfrage. Wenn man mehrer boards hat die in eine Rubrik fallen kann man denoch nur einen Haken setzen. Damit kann ich aber erstmal leben. MfG,
bisher gelisteten boards ist das noch möglich, so dass man Aussagen wie: 80% der boards haben 8bit VGA, 15% 3bit und 5% 4bit gewinnen kann. In Folge würde ich dann bei den Cores draufachten im Kern 8 bit zu unterstützen, die nachgeschaltet auf 3 bit zusammengefasst werden könnten. Vorstellen
-
Thread
Ähnlicher (gleicher) ersatz für 80c537
A/D 4*12bit D/A, 64 I/O und 64k Flash+4k RAM oder den C8051F4 mit 100MHz, http://www.analog.com/ hat den ADUC824/834 mit 24bit A/D, 3 x 16 bit A/D, 12 bit D/A, PWM und 62k Flash, 4k EEPROM, 2k RAM und http:
/community/mcu/8-bit/forum
-
Thread
Min. 16bit ADC Modul für Linearpoti
arbeitet......16 bit ... ???
= 500 * 2^Bits / 999.6 Gerechnet würde somit: RPOTI = (500 * 2^Bits / 1000.4) / 2^Bits * 1000 RPOTI = (500 * 2^Bits / 999.6) / 2^Bits * 1000 RPOTI = 500 * 1000 / 1000.4 bzw. 999.6 499.80 <= RPOTI <= 500.2 Fehler
-
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
8 RGB Leds stufenlos ansteuern
versorget: [c] ISR(SIG_OVERFLOW0) // Alle 16 Mikrosekunden { if (sendclk < 288) // Wenn noch Bits zu senden sind { if ((PORTA&(1<<CLOCK)) || sendclk == 0) // Beim ersten Bit oder wenn Bit neu gesetzt werden soll { PORTA &= ~(1<<CLOCK); // Setze Clock Low um neues Bit zu setzen
; // Setze Clock High um aktuelles Bit zu übernehmen } } else // Wenn alle Bits gesendet wurden { sendclk++; if (sendclk == 289) PORTA |= (1<<CLOCK); // Setze Clock High um letzes
-
Thread
Zündkurve verstellen beim 2Takter
Ich weiß ehrlichgesagt nicht wie der Arduino-Kerl zu diesen Werten kommt. Timer 1 hat 16 Bit und damit 2^16 = 65536 Schritte. Wie er in diesen 16 Bit jetzt 65536µs/0,5µs = 131072 Schritte speichern will ist mir schleierhaft. Vielleicht teilt er in der lib ja irgendwie nochmal die Interrupts
C3%A4hler_des_AVR Und hab gleich meine erste Frage: Wie kann ich das TCCR auf Prescale 64 setzen? TCCR1 = ?? Lg
-
Thread
Timer für C505 setzen
das Manual lässt zuviele Fragen offen)? Konkret geht es um die Ansteurung (Ports?) und Startwerte setzen. Vielen Dank, Raphael
Hi Peter, ich möchte den Timer0 in Mode 1 (16bit) betreiben und auf den Startwert 0xF13B (61755) setzen. Ich wühl mich mal durchs Manual ... Raphael
-
Thread
USB Audio Sync Endpoint Implementierung
mach mal ein Beispiel für 44.1 weil das nicht so genau in 1ms SOFs aufgeteilt werden kann. Bei 16 Bit muss der EP 44.1 * 32 Bit in einer ms übertragen (2 Kanäle = stereo) Dein Device wird also 9mal 44*32 Bit senden und 1 mal 45*32 Bit. Der SOF wird als konstant angenommen 1ms die spec schreibt das
Beispiel für 44.1 weil das nicht so genau in 1ms > SOFs > aufgeteilt werden kann. > > Bei 16 Bit muss der EP 44.1 * 32 Bit in einer ms übertragen (2 Kanäle = > stereo) > Dein Device wird also 9mal 44*32 Bit senden und 1 mal 45*32 Bit. > Der SOF wird als konstant angenommen 1ms die spec schreibt
-
Thread
Negierung von float Wert Gesperrt
> Aus der Doku weiss ich das mein float 32bit, also 4 byte gross ist. > x |= 0x8000; Damit würdest du z.B. das 15. Bit deiner 32-Bit-Zahl setzen... :-o
Lothar Miller schrieb: > Damit würdest du z.B. das 15. Bit deiner 32-Bit-Zahl setzen... :-o Noch schlimmer. Er würde die Gleitkommazahl in eine Ganzzahl umwandeln und deren 15. Bit setzen.
-
Thread
Firefox Browser: Weche Add Ons sind ein "muss" ?
Icke ®. schrieb im Beitrag #4154320: > Wie schafft sie das bloß? 32-Bit Programme sind auf 2GB beschränkt. Du > arbeitest also mit der 64-Bit Beta? Unter 64-Bit Linux hat er bei mir nach spätestens 3 Stunden auch so viel RAM gefressen.
Uhu Uhuhu schrieb im Beitrag #4154383: > Auf welchem System? Windows 7 Enterprise 64-Bit 8 GB RAM Firefox ist eine 32-Bit Version
-
Thread
Fuse setzen beim ATmega 128 via PonyProg
Hallo, ich möchte bei meinem ATmega128 mit PonyProg die Fuse für den externen Takt setzen. Dazu habe ich mir einen STK200/300 wie auf der Homepage http://www.lancos.com/prog.html#avrisp beschrieben mit einem 74HC244 aufgebaut. Wenn ich nun bei PonyProg AVR ISP I/O angebe, ist der Probe-Test
Flash-Speicher funktioniert einwandfrei. Sobald ich aber versuche die Security and Configuration Bits auszulesen kommt die Meldung "Device missing or unknown device (-24)". Wenn ich diese Meldung ignoriere dauert es kurz, bis er dann aber letztendlich abbricht. Das Schreiben dieser Bits habe ich noch
-
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
Können die Lock-Bits des Atmega8 umgangen werden?
an. Wenn du allerdings ein Schreiben auf den Flash verhindern willst, musst du die Fuse-Bits natürlich danach setzen. Also typischerweise schützt man seine Anwendung durch das Setzen der Fuse-Bits nach dem Flashen :-) Gruß Stephan
Stephan M. schrieb im Beitrag #2370423: > das kommt generell natürlich auf die Fuse-Bits an. Hier stehen aber die Lock-Bits zur Debatte. @Heinz: Setze dach dem Flashen die Lockbits und gut ist... Die Lockbits kannst Du nur durch Löschen (Chip-Erase) des AVRs wieder freigeben, dann
-
Thread
Tool für Datensicherung gesucht
Ziel. Harald K. schrieb: > Was ist für Dich die "echte" Dateistruktur Echtheit ist Präzision bit für bit. Nicht nur beschreibend das Seiende* aka "wie die Bits liegen sollten", also keine chechsums, hashes, verschlüsselt usw. wie sie "zu haben sein sollen" aka eng. "have to be" aka müssen
Harald K. schrieb: > Was ist für Dich die "echte" Dateistruktur Präzision bit für bit. no chechsum, no hash, no encryption
-
Thread
P1 an einem C535 als Aus und Eingang nutzen
Vermutlich meinst du mit "Byteweise", dass du 4 Bits auf einmal lesen/schreiben möchtest. Lesen: Wert = Port-lesen & benutzte-Bits also Geschwindigkeit = Port1 & 0x0f Schreiben: Ausgabe-Bits passend schieben, was Eingang sein soll auf 1 setzen,
Bits müssen in der Variablen i natürlich auch in den oberen 4 Bits stehen, oder man schiebt den Wert vorher um 4 Bits nach links.
-
Thread
Atmega SRAM Adresse lesen
Register direkt in C auslesen. Üblicherweise auf den Adressen 0x5d und 0x5e. Datenblatt lesen. Nur die 16 Bit musst du von Hand zusammbauen. Oliver
thread_context[] vor, die er ja irgendwie in die Berechnung mit > einfließen lassen muss? Die 16bit Subtraktion koennte genausogut eine 16bit Addition (des 2er Komplements) sein, und dann ist's wahrscheinlich genau die Stelle wo die Adresse von thread_context miteinfliesst. Gruss WK
-
Thread
G-Code-Interpreter und µStep-Controller mit ATmega644
insgesammt. Der Tiny2313 empfängt das SPI Frame mittels USI Interrupt. Wandelt das Floatformat in einen 40bit integer um (ca.170µs) und dann den 40Bit Integer in BCD für die Anzeigetreiber (MAX7219). Über eine zweite Software SPI Schnittstelle werden diese Daten dann an die Anzeigentreiber wieder ausgegeben
gerade installiert. Erhalte aber eine Fehlermledung. Siehe Anhang. Gruß Kay PS: System ist Win7 32bit HomePremium
-
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
Einzelne Bit in Bitfeld in for Schleife ansprechen
#include <string.h> #include <ctype.h> union { uint16_t allbits; struct { uint16_t bit0:1; uint16_t bit1:1; uint16_t bit2:1; uint16_t bit3:1; uint16_t bit4:1; uint16_t bit5:1; uint16_t bit6:1; uint16_t bit7:1; uint16_t bit8:1; uint16_t bit9
Hallo, ich würde es anders lösen. Eine 16 Bit Variable für die 13 Bits um die Zustände zu speichern. enums, Namen für Bitnummer, praktisch dein struct Bitfeld nur in enums. Funktion zum setzen der enum Bitnummer in der 16 Bit Variable.
-
Thread
Reengineering: Siemens S65 Display
Es funktionert so weit, du kannst pixel setzen und bitmaps schreiben. Eine Grafik-Library musst du allerdings selber anpassen.
Controller: http://www.mikrocontroller.net/attachment/10916/HD66766-10.pdf 0x16 und 0x17 - zum Setzen eines Fensters im RAM 0x21 - RAM Adresse setzen 0x22 - in den RAM schreiben ...
-
Thread
BASCOM AVR Port mit String setzen
der eine Zahl von 0-255 beinhaltet. Diese kannst du in einen Integer umwandeln und damit den Port setzen.
auf einen Port zu schreiben macht auch wenig Sinn, was willst Du damit bezwecken? Der Port ist 8 Bit breit, kann also nur ein "Byte abbilden", bzw. dessen Binärwert, ergo auch nur ein Zeichen, z.B. das &. Portb = &B00110011 ' das geht natürlich. Jede Programmiersprache hat seine Befehle, deren
-
Thread
ATtiny 85 PWM timer0 reset nach sei();
z.b. CTC mode und OCR0A interrupt - mit _delay_ms() an diversen Stellen gehofft, dass irgend ein bit "zu langsam" gesetzt wird - mit while(!(register & (1 << bit)){} das setzen aller bits abgewartet - timer0 als CTC zu configurieren funktioniert problemlos (Überprüfung der Hardware und meines Verständnisses
der Lage bist, das selbst aus dem DB zu extrahieren: es geht (in deinem Fall mit PB0) um die COM0Ax-Bits. Die musst du passend setzen für deinen TimerModus und deinen Anwendungsfall. Details, wie genau, entnimmst du aber bitte dann doch selber dem DB. Ich bin kein DB-Vorleser.
-
Thread
TPIC6B595N Cascade Problem
warum nur einer, wie willst Du durchverbinden? Am Gegenstecker mit jeweils zwei Leitungen rumwürgen? Setze zwei Stecker und setze den Stecker oder die ICs soweit ab, dass Du sinnvoll mit den Leiterbahnen rauskommst.
nur einer, wie willst Du durchverbinden? Am > Gegenstecker mit jeweils zwei Leitungen rumwürgen? Setze zwei Stecker > und setze den Stecker oder die ICs soweit ab, dass Du sinnvoll mit den > Leiterbahnen rauskommst. Ich schließe mich den Fragen von Harald an, habe z.B. nach „weshalb SMD“ selbst
-
Thread
eeprom M95M02
lese ich nun > immer wieder 0 aus. Ich hoffe das passt soweit. Ja, du musst in die Statusregister Bits schon was anderes als 0 reinschreiben oder eben mit WREN das WEL wieder setzen. Pat A. schrieb im Beitrag #7176202: > noch ein Tipp: wenn Du Daten geschrieben hast (max. eine Page), dann > solange
eeprom schreiben möcht wie läuft das ab: Send Kommando WREN Send Kommando WRITE Send Adresse (Bit 17..24) Send Adresse (Bit 9...16) Send Adresse (Bit 0...8) Send Datenbyte
-
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
Eigenes Voltmeter im Mikrovoltbereich bauen.
Hmm. Du verlangst echte 23,2Bit Genauigkeit und eine Auflösung von mindestens 26Bit. Wie stellst du dir das vor? Ich kann dir aus eigener Erfahrung sagen: Das ist EXTREM schwierig. Setz dir mal das Ziel 16Bit Auflösung (d.h
und ein Bit hätte 0,33 l
-
Thread
8051 Assembler: LED- Blinken lassen mit Timer und Interrupt
, da mein 8 Bit Timer höchstens den Wert 255 speichern kann. 3200 / 200 = 16 Schleifendurchgänge Dann Initialisiere ich den Timer, R0 und setze die Interruptfreigaben: [c] CLR TR0 ; Timer 0 Stoppen CLR TF0 ;
Intterupts Freigeben SETB IT0 ; Timer 0 Interrupt freigeben ORL TMOD,#02h ; M1 fuer Modus 2 (8-Bit Autoreload) setzen MOV TH0, #5 ; Den Timer Reloadwert auf 5 stellen, sodass zum Ueberlauf 200 ;Schritte benoetigt werden MOV TL0,#55 ; Timer startwert (200 bis Ueberlauf) mov R0,#0
-
Thread
Suche Empfehlung für Mikrocontroller
Hm, also ich habe mir das Referenz-Handbuch gezogen und laut dem können Timer2 und Timer5 als 32bit Timer konfiguriert werden. Wenn ich mir dann die RCC-Register anschaue, dann kann ich weder Timer2 noch Timer5 auf APB2 setzen. Die Taktverteilung mache ich natürlich auch mit stmCube und wenn ich
hinten nicht hinbekommen. Dann habe ich entdeckt, dass man bei Configuration bei RCC das entspechende Bit setzen kann. Nennt sich "TIM Prescaler Selection" Klasse, das hat mich jetzt ein großes Stück weiter gebracht :)
-
Thread
EMV-Problem am AVR
r18,0 ; dann setze Timer(Zähler) zurück sbrc r17,0 ; Wenn Time out bit gesetzt, rjmp A_01 ; dann spring zu A_01 sbis PIND,3 ; Auslösetaste auf Patine wenn betätigt, ori r17,0b00000001 ; dann setze Time out bit sbis PIND,3 andi r17,0b11110111 sbic PIND,4 ; Überwachungseingang wenn 0, rjmp A_01 ; dann spring zu A_01 sbrs r16,0
-
Thread
Timer 8 Bit, Interrupt
Hallo Leute, Ich beschäftige mich im Moment ein wenig mit dem Timer +Interrupt. Jetz hab ich mit den GCC ein Programm geschrieben. In diesem soll nach einer gewissen Zeit einfach alle LEDS 1 setzen. Problem: *Er kommt nicht in den Interrupt*. Der Quelltext: ------------------------------------------------------------- [c] #include <avr/io.h> #include <avr/interrupt.h> int Zeit; ISR(TIMER0_OVF_vect) { Zeit++; } void main() { Zeit = 0; DDRD = 0xFF; PORTB = 0xFF; TIMSK |= (1<<TOIE0); TCCR0 |= (1<<CS00)|(1<<CS02); sei(); for (;;)
-
Thread
AD Wandler liest falsch PIC
anschaue, denke ich, dass in der adc-ISR, nachdem das ADIF abgefragt wird, nicht sofort das ADCON0bits.GO gesetzt werden darf, da es ja sonst keinerlei aquisition-time gibt. Vor dem Setzen des ADCON0bits.GO könnte man ja vorher noch die delay-routine aufrufen, c.a. 5mikrosek. dürften genügen.
anschaue, denke ich, dass in der adc-ISR, > nachdem das ADIF abgefragt wird, nicht sofort das ADCON0bits.GO gesetzt > werden darf, da es ja sonst keinerlei aquisition-time gibt. > Vor dem Setzen des ADCON0bits.GO könnte man ja vorher noch die > delay-routine aufrufen, c.a. 5mikrosek. dürften genügen
-
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
Problem bei bit shifting
Verschiebung stoße. Und zwar handelt es sich dabei um einen Standart Identifier mit einer Länge von 10 bit, dessen Bits 3-10 ein eigenes Register für sich beanspruchen und den Bits 0-2, die sich ein anderes Register mit weiteren Daten teilen. Nach dem einzelnen Auslesen (da das auslesen korrekt funktioniert
3 nach links? Kann dieser Typ das Ergebnis aufnehmen? Bedenke: erst NACH dem schieben wird auf 16 bit gecastet. Das Thema sollte geklärt sein.
-
Thread
Wann gibts mal wieder neue gute AVR 8-Bitter?
Geschwindigkeit ausführt, spielt es für mich keine Rolle, ob er dies mit einer ausreichend hochgetakteten 4-Bit-CPU, einer 32-Bit-CPU oder mit zusätzlichen Hardwarebeschleunigern erreicht. Ich habe in der Vergangenheit viele Dinge mit AVRs realisiert und verwende sie auch heute noch gerne. Der Hauptgrund
Man bezahlt Chipfläche. Ein 32Biter benötigt nicht viel mehr Platz als ein 8Bitter. Eine Ausgangsstufe für einen 40mA IO ist oft viel größer
-
Thread
LTC1257 - Problem mit Ansteuerung (SPI)
gleiche) der Variablen testen, ob eine 1 oder eine 0 anliegt und danach deinen PIN HIGH oder LOW setzen. Danach wird die Variable um eine Stelle geschoben. Das ganze in einer Schleife mit 12 Durchläufen. Schleife Start Bit x in Variable gesetzt ja = dann PIN high nein = dann PIN low
. Schleifendurchgang ===================== DACDATA(data & 0x8000) ich setze für data mal 0xBB8 (1011 1011 1000) ein, dann ein << 4 (-> 12 bits left-justified) ergibt 1011 1011 1000 0000 1000 0000 0000 0000 AND =================== 1000 0000 0000 0000 -> ergibt 0x8000