-
Thread
Frage zu Arduino-Projekt
genau erreicht ist, sondern ob du über die Endzeit drüber bist. Ob du dann um 14:51:00 oder 14:51:01 oder um 14:51:02 bemerkst, dass die Zeit um ist, spielt fürs Gulasch keine große Rolle. Daher fragst du das Ende nicht mit == ab, sondern mit > oder <, je nachdem, wie das dann genau
Karl Heinz Buchegger schrieb im Beitrag #2875041: > denn du wirst es nicht schaffen exakt > um 14:51:00.00000 auf die Uhr zu schauen. Also fragst du nicht ab ob die > Endzeit genau erreicht ist, sondern ob du über die Endzeit drüber bist. > Ob du dann um 14:51:00 oder 14:51:01 oder um 14:51:02 bemerkst
-
Thread
Dynamische Zündung beim Zweitakter
S51 mit vergaser vom S50 und der LiMa mit Elektronik-Zündung (gelbes Steuerteil) brachte problemlos Drehzahlen über 9000... Problem war seinerzeit das Steuerteil der Zündung. Die Hochspannungsdiode war
Zwieback-Sägen zu kaufen, die nicht das Hemd aus der Hose zu ziehen vermögen. :-( @To Halt das S51 gut in Schuß und setze die Original-Zündanlage vom S51B2 rein. MfG Paul
-
Thread
Peak vs Average Power Messung Sensor setting
Nehmen wir einen pulsmoduliertes Signal an mit einem Dutycycle von z.B. 70%. Repetition Interval 10ms, sprich 7ms ist das HF-Signal an und 3ms ist dieses aus. Verwendung von einem Peak-Power-Sensor (Diodenmesskopf). Wenn ich nun die Averageleistung messe und dem Messkopf ein Setting von Dutycycle
kontinuierliches (repetierendes) Signal vorliegt. Im oben genannten Beispiel also ein Signal, das 7 ms "an" und 3 ms "aus" ist -- und sich wiederholt. Bei der Konfiguration des Sensors ist u. a. wichtig, dass man als Aperturzeit ein vielfaches der Signalperiode wählt (mindestens aber 2 Perioden). Der
-
Thread
Problem mit zu großen Arrays im EEPROM
} if ( PINA & (1<<PINA2) ) /* reset */ { TASZ = 0; PORTD = 0x0f; _delay_ms(500); PORTD = 0x00; } if ( PINA & (1<<PINA1) ) /* Zähler auf LED ausgeben */ { for ( x=0; x<TASZ; x=x+1 ) {PORTD = 0x03; _delay_ms(500); PORTD = 0x00; _delay_ms(500); } } } return 0; } [/c]
-
Thread
Lüftersteuerung mit C
PORTC |=_BV(PC1); _delay_ms(19); > > } LED jeweils 1ms an, 19ms aus -> leuchtet schwach. > //LED leuchtet etwa halbhell > for(i=0;i<100;i++){ > PORTC &= ~_BV(PC1); _delay_ms(5); >
Offenbar 'dead Code' [C] while(bit_is_clear(PIND,0)){_delay_ms(1000);} while(bit_is_clear(PIND,1)){_delay_ms(1000);} while(bit_is_clear(PIND,2)){_delay_ms(1000);} [/c]
-
Thread
Wie baue ich eine USB Kommunikation auf?
so anfreunden können. Die Register un Bits sind nicht so schön definiert. Danke für eure Hilfe P51D
das ganze überhaupt mittels Terminal oder muss ich da eine Windows-Applikation schreiben? MFG P51D
-
Thread
EA DOG-M Display (ST7046) und customchars. ARGH!
;i<8;i++) { if(i>6) SPDR = 0b00011111; else SPDR = 0b00000000; _delay_ms(0.03); CONTROLPORT &= ~_BV(CTRL_RS); CONTROLPORT |= _BV(CTRL_RS); } //hier //noch //balken... for(uint8_t i=0;i<8;i++) { SPDR = 0b00011111; _delay_ms
(CTRL_RS); //auf erstes freies Zeichen zeigen SPDR = 0b01000000; _delay_ms(0.1); CONTROLPORT |= _BV(CTRL_RS); CONTROLPORT &= ~_BV(CTRL_RS); CONTROLPORT |= _BV(CTRL_RS); _delay_ms(0.1); //Aussehen Vertikale_Balken();
-
Thread
Frequenzmessung
80C51? Und was soll dann die reg517.h?
Habs geschafft!!! Die Frequenzmessung funktioniert! (nur auf dem 80c51 Board) Hab ein Messintervall von 1 sec. Die Messung ist sehr genau. Nur muss ich mein Programm auf den AT89s52 umschreiben. Hat wer Tipps wie ich meine Timer konfiguriere?? LG Wörnz
-
Thread
Drehzahlregelung mit Lichtschranke bei langsamer Rotation
anzuhalten etc... Ich habe schon einige Dinge probiert (Zyklenzeit des Regelalgorirhmus variiert von 5ms - 60ms), Gradient der PWM begrenzt (bis zu 1/Zyklus) aber ein zufriedenstellender Rundlauf war nicht zu erreichen. Das Problem mit der Auflösung / zeitdiskreten Abtastung bei Lichtschranken als Drehzahlgeber
Andernfalls würde ich mir einen gescheiten Getriebemotor zulegen: https://www.reichelt.de/Getriebemotore/GM51-5-24V/3/index.html?ACTION=3&LA=446&ARTICLE=163522&GROUPID=7832&artnr=GM51%2C5+24V&SEARCH=getriebemotor&trstct=pos_5
-
Thread
Crowbar für DC-DC-Wandler dimensionieren
Hallo, ich möchte mit Hilfe eines DC/DC-Wandlers einige 12V Verbraucher aus einer Batterie mit 51V versorgen. Ich habe dazu einen Buck-Wandler-Modul, das maximal 10A liefern kann. Das Teil ist in einem als Wärmeableiter konstruierten Gehäuse eingegossen. Der Wandler hat lediglich 3 Anschlüsse: Eingang
max. 15A), andererseits liegt der Strom weit unter dem Maximalwert von 200A, die der Thyristor für 10ms verträgt. Die Abschaltzeit des LS liegt deutlich unter 10ms. Die Induktivität der Leitung liegt rechnerisch bei etwa 5µH. Dies führt im Kurzschlussfall zu einem Stromanstieg von 10^7 A/s. Der Thyristor
-
Thread
AT89C51ED2 Ports ständig High
@ Mike da issa. http://www.progforum.com/showthread.php?t=5373&highlight=89c51ed2 Viel Spaß
ja trotzdem noch die ISP funktioniert.... Aber selbst nach einem Tausch gegen einen nagelneuen 89C51ED2 gehts nicht.....selbes Problem! thx, mike
-
Thread
Glühwürmchen in Rotkohlglas gefangen
b movw _b, _c movw _c, _y 50: cp _a_ocr, _b_ocr brsh 51f movw _y, _a movw _a, _b movw _b, _y cp _b_ocr, _c_ocr brsh 51f movw _y, _b movw _b, _c movw _c, _y
16ms des WDT quasi 1 Energiepunkt als Futter für ein Glühwürmchen darstellt. Je höher der Wert Hungry eines Fireflys ist desto länger die Zeitspanne in 16ms Schritten bis es genügend Energie gesammelt hat
-
Thread
Thermomix Rezeptchips
NETLINK-ERROR: 0h8m14s93ms: System command mount -o ro /tmp/dev/loop1 /tmp/sr1 returned 255 NETLINK-INFO: 0h8m14s126ms: Storage partition found at /tmp/sr1/ (S/N: 1495000495750001 ) NETLINK-ERROR: 0h8m14s127ms: No valid cookstick
sr1 NETLINK-ERROR: 0h8m14s93ms: System command mount -o ro /tmp/dev/loop1 /tmp/sr1 returned 255 NETLINK-INFO: 0h8m14s126ms: Storage partition found at /tmp/sr1/ (S/N: REDACTED ) NETLINK-ERROR: 0h8m14s127ms: No valid cookstick
-
Thread
230 Volt Pumpen mit 3,3V Mikrocontroller über Kleinverteiler steuern
> > Im Prinzip ja. > > Als Relais könnte so was gehen > > https://www.amazon.de/finder-38-51-7-024-0050-Finder-Koppelrelais/dp/B01185UBDG/ref=asc_df_B01185UBDG/ Hallo zusammen und tausend Dank für eure Antworten. Ich habe mir die vorgeschlagene 38.51 Serie von Finder mal angesehen und habe
maximale Einschaltstrom ist im Datenblatt mit 10 A angegeben. Falls das mit den 17,8 Ampere für 1,5 ms stimmt, wäre das wohl zu viel. Leider fehlt im Datenblatt für dieses Relais die Angabe einer Dauer für den maximalen Einschaltstrom. Bei manchen Modellen ist diese mit 10 ms angegeben und bei manchen
-
Thread
Warum haben Digital Research, Novel, Borland usw. nie versucht Windows 3.x, Win9x und WinNT zu klone
Win 1 und 2 und letzten Endes den finanziellen Erfolg von Windows 3.x wäre wohl das damals noch von MS in Zusammenarbeit mit IBM entwickelte OS/2 gekommen und MS hätte keinen Alleingang gemacht.
" in Sinne von Unix und OS/2 wurde es erst mit Windows NT 3.51.
-
Thread
Raisonance vergibt nun RIDE + RKIT-51 Lizenzen kostenlos
vielen Jahren mal mit einer 32k Version gearbeitet. Das Ergebnis war durchaus vergleichbar mit dem c51.
// wLength 0,0, // header 0,0,3,6, // OS #ifdef __RC51__ 170,0, #else sizeof (VendorDesc) & 0xFF, sizeof (VendorDesc) >> 8, #endif 8,0, 2,0, // MS_OS_20_SUBSET_HEADER_FUNCTION ..... [/c]
-
Thread
DCF77 - Signallängenüberprüfung
An die Module muß nichts angepaßt werden. Wenn Du 10ms Abweichung festgestellt hast, dann nimm einfach ein etwas größeres Toleranzfenster. Ich taste mit 64Hz (=15,6ms) ab, dadurch ergeben sich in meinem Programm folgende magische Zahlen: 4: 62ms (min) 20: 312ms (max) 10: 156ms (0/1-Erkennung) 60: 0,94s (min 1s) 70: 1,09s (max 1s) 120: 1,87s (min 2s) 140: 2,18s (max 2s) Peter
-
Thread
DCF77 von Peter Danegger
habe mich durch den Code gewühlt folgedes verstehe ich nicht: Der Timer läuft mit 64 Hz (ca. 15,xx ms) warum auch immer. Somit müssten 200ms -> 12,8 Takten entsprechen 100ms -> 6,4 Takten und 1900 ms -> 121,6 Takten Die Bereiche für 100ms und 200ms passen noch ungefähr (zwischen 3 und 8 bzw. zwischen
Jan schrieb im Beitrag #5591579: > Der Timer läuft mit 64 Hz (ca. 15,xx ms) warum auch immer. Natürlich wäre das auch mit 10ms gegangen. Die 64 sind ev. irgendwo geschickter in der Auswertung wegen Zweierpotenz. > Die Bereiche für 100ms und 200ms passen noch ungefähr
-
Thread
unsigned char hochzählen?
mal genauer in der ASCII Tabelle nach, was Zeichen wirklich sind ;-) das Zeichen '3' wäre dezimal 51, also klappt das mit t<3 sicherlich ;)
Muss es nicht: [c] if(t < 2) // wird alle 60ms ausgeführt { t++; } else t=0; [/c] heissen? Also t<2 statt t<3? Sonst zählt die Kiste doch von 0, 1, 2, 3, 0...
-
Thread
c++ oder c# für Anfänger
µC zu bezeichnen ist ... naja. Das ist fast schon ein vollständiger PC. Zeig mir aber einen MSC-51, einen AVR, einen PIC, einen MSP430, der mit C# programmiert wird ...
mal in Microsofts Lage. Du willst im Prinzip sowas wie Java > haben. Kannst du Java nehmen? Öh, MS hat das doch gemacht? Sie hatten ein eigenes Java, das war allerdings mit dem von Sun nicht mehr kompatibel, lief also nur noch auf Windows. Dann hat Sun MS verklagt, gewonnen und Sun hat das erste mal
-
Thread
8051 Assembler - Registerbänke
--> Zählregister Zeitbasis 1 Sekunde ; R7 --> Zählregister Zeitbasis 1 Minute Include 51/reg51.inc ORG 0000H ;Speicheradressse 0 SJMP Beginn ;####Interruptroutine Timer 1 - TF1 - 001BH ORG 001BH ;Einsprungadresse Timer 1 TF1 alle 50ms ein Einsprung SETB
Eine Beipiel-Uhrenroutine findest Du hier: http://www.mikrocontroller.net/attachment/49155/UHR.A51 Peter
-
Thread
Dimensionierung Widerstände bei LED-Matrix
ist mein Peak Current aber auch nur 100mA. Könnte das zum Problem werden? und 0.1ms Pulswidth ist auch bischen wenig Zeit. Momentan lasse ich jede Spalte für 2ms leuchten. 2ms * 5 Spalten ergibt 10ms für einen kompletten Durchlauf, also 100Hz Bildfrequenz. Ok laut dem Artikel ist das
Die Leds werden wohl nicht gleich kaputt gehen, aber sie altern dadurch schneller. > und 0.1ms Pulswidth ist auch bischen wenig Zeit. Momentan lasse ich jede > Spalte für 2ms leuchten. 2ms * 5 Spalten ergibt 10ms für einen > kompletten Durchlauf, also 100Hz Bildfrequenz. Die 100 Hz sind eh
-
Thread
Fragen zu schrittmotor Treiber
eingeschaltet wird. Beim IC-Wechsel klemme ich diese Strippe jedoch ab. Vollschritt ( keine Brücken MS1-MS3 ) 50Hz, 51,1°C 250Hz, 64,3°C 1kHz, 55,0°C 1/2 ( MS1 ) 50Hz, 55,2°C 250Hz, 55,7°C 1kHz, 54,8°C 1/4 ( MS2 ) 50Hz, 54,0°C 250Hz, 55,5°C 1kHz, 56,3°C 1/8 ( MS1 & MS2 ) 50Hz, 55,7°C 250Hz, 55,3°C 1kHz, 53,1°C 1/16 ( MS1-3 ) 50Hz, 50,4°C 250Hz, 51,4°C 1kHz, 52,7°C Bernd_Stein
-
Thread
Layout überprüfen bitte (8051)
sehr viel besser ist das nicht geworden. Und Masse gehört als Fläche ausgeführt. Auch bei einem 80x51 aus dem Jahre Schnee. Aber ich wiederhole mich. Hänschen - wie alt bist Du? MiWi
O-Aktualisierungs-Unterprogramme. Ich musste alles mit Schleifen machen und daher dauert eine I/O-Aktualisierung (Out+In) etwa 5ms. Der ganze Tastenabfrage-Interrupt wird dann etwa 5-25ms dauern (je nach Taste) und wird alle 50ms ausgelöst. Ich habe keine Pullups an die Ports der CPU gelötet, welche die 6 Schieberegister steuern
-
Thread
Moodlight Sourcecode hilfe
möchtest, musst Du während diesem t bis 1024 (2^10) gezählt haben. Dein Timer muss also alle 6,666ms/1024=6,51µs einen Interrupt auslösen, das geschieht also mit ca 153,6kHz -- das ist schon ordentlich. Wie kommst Du jetzt auf diese 6,5ns ? Du musst Dir jetzt einen Timer aussuchen, je nach dem
Methode auf maximal die F_PWM festgelegt, mit dem Du die Werte hochzählst. Gegenüber Deiner _delay_ms(10) Version würde sich aber nix ändern, denn 1/100 Hz = 10ms.
-
Thread
AVR64DD20 - USART stürzt bei großem Buffer ab
USART0_Init(); PORTA.DIR |= DSCK_PIN; char testbuffer2[1000]; _delay_ms(10000); for (int i = 0; i< 1000; i++) { testbuffer2[i] = i; } testbuffer2[999] = '\0'; while(1) { printf("%s", testbuffer2); _delay_ms(1000);
) { USART0_Init(); PORTA.DIR |= DSCK_PIN; char testbuffer2[1000]; _delay_ms(10000); for (int i = 0; i< 1000; i++) { testbuffer2[i] = i; } testbuffer2[999] = '\0'; while(1) { printf("%s", testbuffer2); _delay_ms(1000);
-
Thread
Projekt Maus
Niemals 73 - 51 !
Handschuh? ;-) Allerdings hatte ich das nicht gelesen. Andreas S. schrieb im Beitrag #4187242: > 0,1ms Einschaltzeit, dann ca. 9,9ms Ausschaltzeit. Werde das trotzdem mal versuchen.
-
Thread
nRF5 SDK vs. nRF Connect SDK (Zephyr)
SoftDevice hat. Hat von euch jemand Erfahrung mit (1) und/oder (2). Habe nämlich mit Zephyr ein 1ms LED Toggle versucht, was so gar nicht funktioniert hat (zeitlich). Im späteren Verlauf soll unteranderem ein AFE44xx angeschlossen werden, dieser sendet alle 2ms Daten. Dazu kommt noch ein weiterer
nrf_dev_timer_example_main "\examples\peripheral\timer") Prescaler: 0 (16Mhz) und mit 16000 "vorgeladen", sollte 1ms ergeben. Gemessen mit LogicAnalyser habe ich Zeiten von 0.9894ms bis 0.9923ms...? Wie kommt diese Schwankung zustande? Im Datenblatt steht was von: "Independent of prescaler setting the accuracy
-
Thread
Zeit problem bei schleifen
>> 352,51us ... 318,33us >bei der schnellen schleife braucht ich ungefähr 40ms weniger zeit, bei >1MB, als bei der langsamen scheifen. Man kann sich *alles* schön rechnen. Hier gehts ja wohl um SPI. In
>Differenz = 34ms. Sind natürlich 34us :(
-
Thread
Lötstation JBC ?
Du brauchst eine Lötstation, die beim Hinsehen schon aufheizt. Da läßt sich die Wartezeit auf 15 ms verkürzen.
Hier ist die Schaltung vom WESD51 TC Frontend: https://www.mikrocontroller.net/topic/307892#3838887
-
Thread
Dog-M Display füllt weitere Zeile mit selbst kreierten Zeichen
************************ void InitDisp(void) { PORT_RS &= ~(1 << PIN_RS); //low _delay_ms(300); int BIAS,PWR,FOLLOW; if (VOLTAGE == 5) { BIAS = 0x1c; PWR = 0x51; FOLLOW = 0x6a; } else { BIAS = 0x14; PWR = 0x55; FOLLOW = 0x6d
; // Display ein, kein Cursor, kein Blinken Disp_Command(0x01); // Disoplay löschen _delay_ms(50); // Auf Display warten Disp_Command(0x06); // Entry Mode set - Display wartet auf Eingabe _delay_ms(25); // Auf Display warten }
-
Thread
HILFE!!! beim Assemblieren Anfänger
*************************** ; Delay ;********************************************** DELAY_10MS: MOV R7,#10 DELAY_10MS_1: MOV R6,#0E6H DELAY_10MS_2: NOP NOP DJNZ R6,DELAY_10MS_2 DJNZ R7,DELAY_10MS_1 RET DELAY_100MS: MOV R7,#100 DELAY_100MS_1: MOV R6
*************************** ; Delay ;********************************************** DELAY_10MS: MOV R7,#10 DELAY_10MS_1: MOV R6,#0E6H DELAY_10MS_2: NOP NOP DJNZ R6,DELAY_10MS_2 DJNZ R7,DELAY_10MS_1 RET DELAY_100MS: MOV R7,#100 DELAY_100MS_1: MOV R6
-
Thread
PIC16F871 - Software f. Kicker ! Hilfe!
ohne Gewähr). Ich benutze den AT89C51CC01UA, weil ich CAN brauche. Peter
ein MAX202 aber kein CAN-Transceiver vorhanden ist. Du solltest dir dazu mal das Datenblatt des T89C51RD2-3C angucken.
-
Thread
Division mit WinAVR sehr langsam?
Dekrements 16 Sprünge Dazu noch etwas push/pop um Reister zu sichern. Das darf bei 20Mhz keine 2ms dauern. 2ms wären bei dieser Taktfrequenz ~40000 Instruktionen!
Code. (Streiten wir doch nicht um ein paar µs) Schon. Da sind wir aber immer noch weit weg von 2ms Für mich bleibt immer noch die Frage: Wo kommen die 2ms her?
-
Thread
Lötstation
Von WTCP 51 (Magnastat) würde ich dringend abraten, da die Löttemperatur FEST ist und nur durch Wechsel der Lötspitze verändert werden kann. Dies ist ist nur für "Löten am Fließband" sinnvoll. Als Weller Lötstation
was haltet ihr von der "Ersa MS 250 S" ? da sind 2 Lötkolben dabei, aber leider hat sie nur 25 watt Ich hab nicht vor, damit kabel mit über 1,5 mm² zu löten. Geht das mit 25 Watt problemlos?
-
Thread
Chip für super simple Funktion
Eingänge in einer gewissen Sequenz geschaltet werden: - Spannzange auf - Freipusten, 3-4 Stösse a 300 ms mit 300 ms Pause (löst das Werkzeug aus dem Konus) Freipusten selbst soll aber auch einzeln anzusteuern sein um eben ein neues Werkzeug sauber zu pusten. Hardwaremässig ist schon alles klar, also
Wenn inB high dann outB high. Wenn inA lowToHigh dann outA high und outB 3 mal high - low mit 300ms. Welcher möglichst kleine, simple und robuste Chip mit möglichst wenig zusätzlicher Beschaltung eignet sich hier am besten. Die 300ms sind nicht kritisch, können auch 250 oder 400 sein. Auch die
-
Thread
Display (HD4478099) zeigt nur Kästchen
; WaitMs(10); PORTC = 0b00000100; WaitMs(10); PORTC = 0b00000000; WaitMs(10); PORTC = 0b00100000; WaitMs(10); PORTC = 0b00111000; WaitMs(10);
; WaitMs(10); PORTC = 0b00000000; WaitMs(10); PORTC = 0b00000100; WaitMs(10); PORTC = 0b00000000; WaitMs(10); PORTC = 0b00100000; WaitMs(10); PORTC = 0b00111000; WaitMs(10); Es tut sich
-
Thread
Pic10F200 - Programm mit Taste (Ein/Aus)
.0 RETURN ;******************************************************* ; Warteschleife für 300 ms WAIT5 movlw .300 movwf loops ; die top-Schleife verzögert 1 ms = 300 x 4µs top51 movlw .300 movwf loops2 ; die top2-Schleife verzögert 4 Takte = 4 µs top52 nop decfsz loops2, F goto top52 decfsz loops, F goto top51 retlw .0 RETURN ;******************************************************* ; Warteschleife für 275 ms WAIT6 movlw .275 movwf loops ; die top-Schleife verzögert 1 ms = 275
-
Thread
8 Kanal 50Ms/s AVR Logic-Analyzer
akzeptabel. Wenn > du den verschmähst, dann kann ich mir kaum vorstellen, dass du €100 in > eine 500 MS/s Version investiert hättest. Die 100 Euro bei 10 Stück sind wohl beim MinLA auch der letzte Stand. Das sind beim MiniLA 100MS/sm warum sollte ich also nicht für gleiches Geld 500MS/s nehmen, nur
Vielleicht lohnt es hier auch, die Datenbusse passend zu entkoppeln, um z.B. flexibel 8 Kanale @ 160MS/s und 16 Kanäle @ 80MS/s mit der gleichen Hardware zu unterstützen.
-
Thread
8051 Assembler: LED- Blinken lassen mit Timer und Interrupt
möchte, habe ich eine Frage an euch: An Port 1.0 will ich eine periodische Flanke im Abstand von 1,6ms erzeugen, wobei die Taktfrequenz 24MHz beträgt. Der Timer0 soll im Modus 2 (8Bit Autoreload) verwendet werden. Daher erst mal meine Berechnung zu den Zyklen:: 24MHz / 12 = 2 MHz = 5*10^-7 s 1,6ms
das Push/Pop fällt weg. Wenn Du mit dem 8051 basteln willst, nimm einen mit Bootloader, z.B. AT89C51RB2. https://www.reichelt.de/mikrocontroller-8-bit-dil-40-at-89c51-rb2-3cs-p189062.html?&trstct=pol_5 Freier C-Compiler: https://www.batronix.com/versand/software/uC51/c-compiler.html
-
Thread
8051-Code auf AVR-Platine STK500 übertragen
Ich hatte den Wechsel von '51 auf AVR und fand, dass es einfach zu machen war. O.K. man muss sich an die Assembler-Befehle gewöhnen, aber dafür gibt es ja das Datenblatt und dieses Forum. Ich verstehe deswegen die Beweggründe des
Eric Schmitz wrote: > Was soll daran nicht richtig sein? Ich verstehe nicht ganz. 50ms entspricht 20Hz 20Hz * 50001 = 1,00002MHz. Wenn Du also nen 1,00002MHz Quarz nimmst, stimmts natürlich. Peter
-
Thread
AT89S52 programmieren klappt nicht
noch "alte" 8051 wie AT89S52 aber mit Bootloader: http://www.microchip.com/design-centers/8051-80c51-legacy-microcontrollers
ob der Programmer den AT89S52 unterstützt. Wenn du das Pinout des 89S52 gut findest und an MCS51 eher nicht so interessiert bist, dann wäre als Aternative der Mega8515 eine gute Wahl. Das ist ein AVR8 mit dem gleichen Pinout wie der 89S52 (oder überhaupt alle alten DIP40 aus der MCS51 Familie),
-
Thread
8051 Delay Funktion mit Timer (mal wieder)
auch schon einen Ansatz. Dieser Funktioniert jedoch noch nicht. Kompiler ist Keil, µC ist ein AT89C51ED2. Timer 0 läuft im 8 bit Autoreload und erzeugt mit dem PCA bereits eine 200 Hz PWM. Diesen Timer (Überlauf alle 5 ms) möchte ich ebenfalls für die Erzeugung des Delays benutzen. Egal ob ich den Wert
löschen delaycount++; // Delay Variable incrementieren } [/c] Delay Funktion: [c] void delay5ms(unsigned int dtime) { delaycount = 0; while (delaycount < dtime); } [/c] Funktionsaufruf in der Main zw. den einzelnen Helligkeitswerten [c] delay5ms(10); [/c]
-
Thread
Entprellung von Tastern
Für Leute, die noch eine schöne .A51-Routine brauchen, die entsprechende Quelle 'taster.a51'. Per T0-Interrupt wird die Routine GET_TASTER aufgerufen. Hier werden 16 Taster (beispielhaft an Port1+Port2) mit TAST_IN eingelesen, entprellt
müsste die Werte abändern, wenn man schlechte Schalter hat, aber mit normalen Tastern funktionierts. 1ms reicht übrigens auch für relativ schlechte Schalter, denn 1ms ist nicht die Zeit vom 1. bis zum letzten Prellimpuls (was durchaus mehrere hundert sein können). Dann würde es auf keinen Fall funktionieren
-
Thread
Digitaler Spongebob Bilderrahmen für 15€
][ 307] MatrixA[1]=[FFFFFFE6][- 26] MatrixA[2]=[FFFFFFE6][- 26] MatrixA[3]=[FFFFFFCD][- 51] MatrixA[4]=[166][ 358] MatrixA[5]=[FFFFFFCD][- 51] MatrixA[6]=[FFFFFFDA][- 38] MatrixA[7]=[FFFFFFDA][- 38] MatrixA[8]=[14D][ 333] MatrixB[0]=[0][ 0] MatrixB[1]=[0][ 0] MatrixB
837 left_green.jpg 1980/00/00 00:00:00 logo~1.jpg 10846 logo.jpg 1980/00/00 00:00:00 ms_car~1.jpg 1958 ms_card.jpg 1980/00/00 00:00:00 no_car~1.jpg 2012 no_card.jpg 1980/00/00 00:00:00 right_~1.jpg 843 right_green.jpg 1980/00/00 00:00:00 sd_car~1.jpg 2015
-
Thread
LCD-Problem mit EA DIP081
Display richtig >initialisiert. Schaltplan? Deine Delays sind am Anfang zu kurz. Da werden 15ms bzw. 4ms gebraucht. Und die Einstellung der Busbreite muss dreimal erfolgen. MFG Falk
Befehl ein Übernahme-Impuls gesetzt werden ?? >Deine Delays sind am Anfang zu kurz. Da werden 15ms bzw. 4ms gebraucht. >Und die Einstellung der Busbreite muss dreimal erfolgen. Laut Datenblatt sind es 1,64ms und 40us, aber ich kann es mal mit deinen Zeiten probieren. Gruß Walter
-
Thread
Entprellen (kein AVR) Gesperrt
FeiertagsBastler schrieb im Beitrag #6218724: > Timerinterupt alle 1ms und dort drin im "Vorbeigehen" die zwei Pins > abfragen, an denen der Encoder sitzt. Setz da doch einfach ein xy_ms Flag. Gibt sicher noch ein paar Sachen mehr, denen ein solcher Timeslot gut zu
L, LDEQ, LDMI, LDMIA, .... alles ganz einfach und jeder versteht das auch, PIC, AVR, ARM, x86, i51, /390, alle sprechen ASM.
-
Thread
Attiny2313 macht Probleme
<util/delay.h> int main() { DDRB = 0x08; while( 1 ) { PORTB |= 0x08; _delay_ms( 1000 ); PORTB &= ~0x08; _delay_ms( 1000 ); } } [/C]
<util/delay.h> int main() { DDRB = 0x08; while( 1 ) { PORTB |= 0x08; _delay_ms( 1000 ); PORTB &= ~0x08; _delay_ms( 1000 ); } } [/C]
-
Thread
ESP8266/Thread-Steckdose - lohnt sich das?
+ wohl auch? Meine liegen immernoch in der Tüte... nRF24L01+ Sende/Empfangsmodule 2.4 GHz nRF51 nRF24L01+ und kleiner uC nRF52 nRF24L01+ und NFC und uC (leistungsfähiger als nRF51) > Der RFM12 war Beispiel wegen der Status-Rückmeldug usw. > >> Kannst Du die typischen Reichweiten
Danke für den Hinweis. Rechnung: Laut Datenblatt wacht das ESP8266 (3.3V) im Lightsleep alle 100ms für 3ms auf. Für diese 3ms setzte ich einmal 200mA an. Allerdings soll das ESP8266 gelegentlich auch etwas tun. Ein Beispiel: 200mA*3.3V*100ms= 66mWs Aluminiumkondensator im Kondensatornetzteil