-
Thread
8051 programm
bestelle dauert es viel zu lange! Ich zahle was du willst, bitte schreib mir so ein Programm in 80c51 Befehlssprache! Vielen dank im voraus
Aber was willst du damit ??? Ist ja noch keine Anzeige bei, ..... die wolltest Du ja machen in 80c51 "Befehlssprache" !!!!! ...da hat wohl jemand keinen Bock auf Hausaufgaben........
-
Thread
Mikrocontroller gesucht
schrieb im Beitrag #3607472: >> Wie schnell? > > Die ganzen Werte sollten rund alle 5 bis max. 10 ms erneuert werden. Das ist doch schnarch-langsam. Der einfache interen von z.B. MSP aka. MSP430-ADC10 macht 200kS/s Also alle 5us einen Messwert. Bie 8 Werten. hast du für 5ms also noch 4,960ms
werden 16 DACs versprochen, ich warte schon drauf, aber ob der Chip jemals fertig wird: FTDI FT51 48 MHz 8051 http://www.ftdichip.com/MCU.html
-
Thread
WordClock mit WS2812
192.53.103.103"<0d><0a> update display (OK time) <.....> (HTTP GET / year=2016&month=06&day=29&hour=08&min=51&action=savedatetime) http path: '/' http parameters: 'year=2016&month=06&day=29&hour=08&min=51&action=savedatetime' command: set time to We 195044900-06-29 08:51:00 (- client disonnected) read rtc: We 2020-06-29 08:51:44 [/code] Ich trage im WebFront das Datum 29-06-2016 // 08:51 ein. Das wird auch so im GET übergeben. Der Befehl um den RTC zu setzten, macht daraus dann aber 29-06-2020, was man im read rtc lesen
-
Thread
Wann gibts mal wieder neue gute AVR 8-Bitter?
deutlich mehr Flash und der ATtiny4313 kam erst viele Jahre später. Ich hatte allerdings auch den Keil C51 (Version 1995) benutzt. Der AVG-GCC war zwar nicht schlecht, aber wohl nicht vergleichbar hinsichtlich Codeeffizienz.
üblichen OTP-MCs und war lange der einzige Anbieter von günstigen Flash-MCs. Ich meine, ein EPROM-87C51 mit Fenster hat um die 100,-DM gekostet.
-
Thread
GCC - Linker-Steuerdatei
sammeln und diese Datei wird dann dem Linker übergeben: for %%f in ( *.obj ) do echo %%f, & >> l51tmp.tmp l51.exe @l51tmp.tmp Peter
avr-gcc `cat foo.cmds` oder wahlweise avr-gcc $(cat foo.cmds) Dadurch muß das (anders als unter MS-DOS) nicht jedes Tool für sich einzeln behandeln.
-
Thread
Frage zur Dekodierung von Drehencodern
ausprobiert, ohne Vorurteile und auf einigen verschiedenen Platformen. (AVR, Freescale, STM32, MCS51 usw.) m.n. schrieb im Beitrag #3539163: > Das RC-Glied muß nur soweit > verzögern, bis der vorherige Interrupt abgearbeitet ist. Wenn es dann > 5ms lang Prellen sollte, wird eben ein paar mal +
Silber-)Oxid auf den Kontakten und dann prellts ein wenig mehr, so das du evtl. die Zeitkonstante des (1ms) MMV anpassen müsstest.
-
Thread
um welchen Übertragungsstandard könnte es sich hierbei handeln?
erst mal vielen Dank für die Antworten. Das Signal müsste man stimmulieren können, da der 80C51 Daten von einer RS 485 Leitung bekommt. Ich vermute mal, dass 1 Byte große werte übertragen werden. (Die Platinen sind von 1992.). Werden keinen RS 485 Daten empfanen,sendet der 80C51 auch nicht.
µs Signal (das kleinste Signal im Oszillogramm) um das Startbit handelt, dann ist der Frame ca. 6 ms lang.
-
Thread
Stack Überschreiber beim Rechnen mit uint64_t
der Fehler lokalisiert werden. Funktion welche Probleme macht: uint32_t to_seconds(uint64_t time_ms) { uint32_t t; check_stack(); t = (uint32_t) (time_ms / 1000) + int_time_offset; check_stack(); return t; } Der Fehler lässt sich beheben, wenn während der Berechnung die Interrupts
counter() und stop_t1_counter() wurden nicht mit den Messergebnissen verrechnet. 64-Bit PeDa: *4,600ms* 2) Als Kettenbruch-Entwicklung benötigt die Berechnung des FTW mit 32-Bit Zahlen: 32-Bit Kettenbruch: *4,447ms* Hier der Code [c] const uint32_t freq32 = F_MHZ(10); uint32_t ftw32 = 0;
-
Thread
Spannungsversorgung für Mikrocontroller (10V-154V zu 3.3V)
, die Eingangsspannung ändert sich nicht während gestartet wird und die Startphase beträgt ca. 10ms.
leider nicht um einen Nabendynamo und die 154V müssen >tatsächlich ausgehalten werden (mindestens 100ms lang). Das glaube ich erst, wenn ALLE Informationen auf dem Tisch liegen. Aber das ist wahrscheinlich mal wieder so ein geheimes Area 51 Projekt ;-)
-
Thread
Brauche Hilfe beim Berechnen des KFZ Schließwinkels
bei 70V und zeigt nur die Zeit der Hochspannung an (0,07, also 7%). Dein Schließwinkel ist also 64ms / 135ms = 47,4% oder 170°
Faktor 0,55. Beispiel: Wenn Dein Rechteck (aus Deinem Bildle geschätzt) eine Periodendauer von 120ms dann muß die Lowphase 66ms sein.
-
Thread
MAX7456 & STM32 Charakter überschrieben
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x51,0x51,0x2a,0x08,0x48,0x20,0x8a,0x28,0x20,0x88,0x88,0x20,0x88,0x88,0x2a,0x08,0x08,0x20,0x48,0x48,0x21,0x48,0x48,0x21,0x48,0x48,0x21,0x48,0x48,0x45,0x51,0x51}; // 0 // 1 // 2
_delay_ms(1); // write 4pixel byte of char (CMDI) spi_send_byte(0x0B, pgm_read_byte(pointer++)); _delay_ms(1); } // write to the NVM array from the
-
Thread
Neues Projekt - welcher µC?
externen ADC mit I²C oder SPI Interface dran hängen. Schwierig könnte das Timing werden. Deine 2 MS/s (oder sind es gar 8 mal 2MS/s?) hauen so einen ESP nicht vom Hocker, aber die Netzwerk-Schnittstelle will auch bedient werden. Der ESP32 hat zwei CPU Kerne von denen du einen für Ethernet und den anderen
Es muss ja nicht gleichzeitig sein! ab 2MS/s wird der Versatz erträglich... Vorausgesetzt er bleibt von Messung zu Messung identisch Schöner wäre es natürlich schon, kuck mir grad mal den THS1007 an: 6MSps, 4 kanalig. Mit einer ausgeklügelten
-
Thread
Microcontroller Projekt für Anfänger
Forum Herzlich Willkommen! > Die Eingänge bekommen relativ schnelle Signale, sprich z.B. einen 10ms > Impuls Bei 10ms langweilt sich selbst der kleinste ATTinty > sollte nicht so langsam > sein das es zu Interrupts kommt Interrupts müssen gerade bei Mikrocontrollern nicht unbedingt was schlechtes
Di 10ms kommen dadurch, das Elektrisch Zahnräder bewegt werden die schon ca 1800u/min bringen und das bei diesem Zahnrad die Anzahl der Umdrehungen über einen Steuernocken auf einen Taster übertragen wird. Und
-
Thread
Gibt es listen in C wie in C++
der ISR, welche jeweils alle 10ms abgearbeitet werden, mit einem Versatz von eben 3,333ms zueinander. Hier mache ich dann z.B. die Tastaturabfrage und die Uhrzeit sowie ein paar Software-Timer. > Ja, das ist auch meine Meinung. Es
Menü-Funktionen.c:50: error: 'ZweiteMenueEbene' undeclared here (not in a function) ../Menü-Funktionen.c:51: warning: pointer targets in initialization differ in signedness ../Menü-Funktionen.c:51: error: 'DritteMenueEbene' undeclared here (not in a function) ../Menü-Funktionen.c:52: warning: pointer targets
-
Thread
PWM Ansteuerung Brushless-Regler Gesperrt
möchten. Dazu habe ich im Internet gelesen, dass es wohl ein Standard Servosignal ist (PWM - Periode 20ms (Vollgas 2ms am Anfang auf high, Rest low) (Schwach laufend 1ms am Anfang auf high, Rest low)) Also wollte ich das Signal erstmal per PWM mit meinem Atmega324p (16MHz) erzeugen. Dazu nehme ich nun
ging es um die Ansteuerung eines Modellbau-Reglers. Und da handelt es sich um einen Impuls von 1..2ms im Abstand von ca. 20ms. Das ist etwas völlig anderes...
-
Thread
Netzmessung: Frequenz, Amplitude, Phase aus ADC-Samples
möglichst wenig rechenaufwand" einstufen. Meine Schaltung tastet das Signal quasi als 1Bit ADC mit 16MS/s ab. Demnächst kommt dann noch das 1pps Signal aus nem GPS Empfänger dazu.
0.031489 50.039151 -0.00198201 -0.00395618 0.187839 0.156818 0.125642 0.094340 0.062946 51.001307 -0.00198212 -0.00395611 0.218674 0.187839 0.156818 0.125642 0.094340 48.596202 -0.00198192 -0.00395646 0.249291 0.218674 0.187839 0.156818 0.125642 51.740191 -0.00198224
-
Thread
USART Probleme beim atmega324p
Messungszeit000string[] = "Messung so schnell als möglich"; char Messungszeit100string[] = "Messung alle 100ms"; char Messungszeit500string[] = "Messung alle 500ms"; char Messungszeit1000string[] = "Messung alle 1000ms"; char Messungszeit2000string[] = "Messung alle 2000ms"; char Messungszeit5000string[] = "Messung alle 5000ms"; // Vergleichsstrings char Messungstart[] = "M"; char Messungstopp[] = "S"; char Messungszeit000[] = "Z000"; char Messungszeit100[] = "Z100"; char Messungszeit500[] = "Z500"; char Messungszeit1000
-
Thread
Sinus aus PWM - X-Mega Problem
ms -> Step: 47 1618, // Zeit: 3 ms -> Step: 48 1641, // Zeit: 3,0625 ms -> Step: 49 1663, // Zeit: 3,125 ms -> Step: 50 1684, // Zeit: 3,1875 ms -> Step: 51 1705, // Zeit: 3,25 ms ->
ms -> Step: 131 1045, // Zeit: 8,25 ms -> Step: 132 1011, // Zeit: 8,3125 ms -> Step: 133 977, // Zeit: 8,375 ms -> Step: 134 943, // Zeit: 8,4375 ms -> Step: 135 908, // Zeit: 8,5 ms
-
Thread
STM32 läuft mit Debugger schneller als er soll
) { // LED On (High) WRITE_REG(GPIOA->BSRR, GPIO_BSRR_BS_5); delay_ms(100); // LED Off (Low) WRITE_REG(GPIOA->BSRR, GPIO_BSRR_BR_5); delay_ms(900); } } [/c] Ich habe inzwischen den gcc Optimizer eingeschaltet. Das beeinflusst natürlich
Was ich immer wieder auffällig finde: Wenn man von AVR oder MC51 in die Welt der STM32 Controller vordringt, stößt man immer wieder auf unerwartete Effekte. Die langen Errata bin ich auch nicht gewohnt. Ist das bei anderen ARM Controllern auch so, oder ist "lass
-
Thread
Ansteuerung LCD Display(Spartan3E)
aktiviert. Die 0x22 könnte man wohl weglassen. Das ist im ug230 unter "Power-On Initialization" Seite 51 zu finden.
Der Takt beträgt 50MHz. Laut ug230.pdf braucht einer der Initalisierungsbefehle 4,1ms. Durch den Delay (0x3ffff) bekommt man eine Verzögerung von ca. 5ms zwischen den Befehlen. Da alle Kommandos die gleiche Verzögerung benutzen musste es halt dieser größte vorkommende Wert sein. Du kannst
-
Thread
Hex Wert -> Dezimal an LCD ausgeben
@all sorry, habe nicht aufgepasst - war bei meinen mcs51 lieblingen.
1 Sekunde komme.(ohne Rest.) Bin auf folgendes gekommen: 8MhZ 1s = 1000mS ; 8 000 000 Hz....1000ms / 8 000 000 = 0,000125 mS 0,000125 mS ; 1 Takt..........Vorteiler=256 (0,000125*256) 0,032 mS ; 256 Takte.......TCNT0=125 (0,032*125) 4ms ; alle 32000 Takte 4 mS wird der Timer aufgerufen
-
Thread
AVR Timer 1 Normal/CTC Mode ?
Bei welcher Frequenz läuft das ganze eigentlich? Zumindestens von 392.26ms bis 393.34ms sieht das ganze für mich halbwegs logisch aus. Du hast ja nur COM1x0 gesetzt, d.h. von sich aus toggelt der AVR bei nem Match nur. Zurückgesetzt bei nem Overflow wird da bei deinen Einstellungen
122Hz auf Kanal A. ??? Passt doch. Der 16-Bit-Timer hat bei 16 MHz eine Overflowtime von 4,096 ms. Das ergibt beim togglen von OCR1A eine Periode von 8,192 ms oder eine Frequenz von 122 Hz. MfG Spess
-
Thread
Schwere Sicherheitslücke in Intelprozessoren?
absolut letzte Tat war das Wegpatchen der 'WannaCry' Verletzlichkeit im Frühjahr. Der Spass beim o.a. MS Link ist ja der Untertitel: > Gilt für: Windows 10 :-)
Redhat Enterprise Linux 7.4 auf ESXi, der bereits beschrieben krasse Fall von "du": bisher: 60ms real, 40ms sys mit pti patch: 180ms real, 100ms sys
-
Thread
DS 1307 Register defekt? Programmfehler ?
year; char zeit[32]; char datum[32]; int main() { lcd_init(); RTC_Init(); _delay_ms(5); hour = 0x20; min = 0x51; sec = 0x00; date = 0x20; month = 0x08; year = 0x18; weekDay = 1; _delay_ms(5); RTC_SetDateTime(); _delay_ms(5); _delay_ms
// Stop I2C communication after reading the Date } void clock_continue() { _delay_ms(1000); sec ++; if (sec == 0x3B) {_delay_ms(1000); min ++; sec = 0x00;} if (min == 0x3B && sec == 0x3B) {_delay_ms(1000); RTC_GetDateTime();} } [/c]
-
Thread
Zeit Zählen - Beste Möglichkeit
nicht. Könnte mir jemand einen Schubs in die richtige Richtung geben? Verwendet wird ein Atmel 89c51 Die zu messenden Zeiten liegen zwischen 650ms und 1900ms. Ein schönes Wochenende wünscht Sevi
89c51 ist nicht meine Baustelle! aus meiner Ecke gesehen: (Pseudocode) Init: Timer auf Null initialisieren ext Int. auf fallende Flanke initialisieren ZeitLäuftFlag = 0 ISR_Int:
-
Thread
Mit STEP 7 Brötchen verdienen
trotz der fast 1.000 POs = Prozessobjekte beträgt die Zykluszeit bei den aktuellen 417F/H min. 32ms max. 370ms und aktuell 170..180ms (Die Werte habe ich so in Einnerung) zu dem laufen auch viele Funktionen mit 10ms Abtastung. Es ist schon fast Wahnsinn wie schnell die Modernen CPUs sind. Einfache
(Jedoch, mit spez. entw. Hardware ist (fast) alles möglich. Auch µs-Schleifen innerhalb einer 100ms-Schleife)
-
Thread
DCF Problem mit Code
///////////////// //DCF-Synchronisation// /////////////////////// //High-Pegel muß für 1700-1900ms anliegen //Danach muß ein Low-Pegel folgen void dcf_sync(void) { if(!(dataPC & (1<<PIND2))) { if(counter_high>=1750 && counter_high<=1950) { counter_reset();
flags.parity_P3 = flags.parity_err;}; //Überprüfen ob eine 0 oder eine 1 empfangen wurde //0 = 100ms //1 = 200ms //Abfrage größer als 150ms (15% von 1Sekund also 150ms) if (pulse_wide > (65535 - (SYSCLK / 1024)/100*85)) { //Schreiben einer 1 im dcf_rx_buffer an der Bitstelle
-
Thread
DS1631 Auflösung umschalten
i2c_start_wait(DS1631_W); i2c_write(0xAC); i2c_write(0x0C); i2c_stop(); _delay_ms(10); i2c_start_wait(DS1631_W); i2c_write(0xA1); i2c_write(0x28); i2c_write(0x00); i2c_stop(); _delay_ms(10); i2c_start_wait(DS1631_W); i2c_write(0xA2); i2c_write(0x0A); i2c_write(0x00); i2c_stop(); _delay_ms(10); i2c_start_wait(DS1631_W); i2c_write(0x51); i2c_stop(); } [/c] 0xA1 ist die adresse für Temp High, 0xA2 entsprechend für Temp-Low jeweils 2 Byte 0xAC ist das Config.-Register
-
Thread
Fehler beim builden eines Projekts Gesperrt
should work if it's not volatile, but it didn't volatile unsigned short ServoPulse; //Create a 20ms period for servo control ISR (TIMER1_COMPA_vect) { //PORTB |= 0x08; PORTB &= ~0x08; OCR1A = TCNT1 + 20000; //20000 * 1MHz = 20ms OCR1B = TCNT1 + ServoPulse; //Enable OC //TIMSK
should work if it's not volatile, but it didn't volatile unsigned short ServoPulse; //Create a 20ms period for servo control ISR (TIMER1_COMPA_vect) { //PORTB |= 0x08; PORTB &= ~0x08; OCR1A = TCNT1 + 20000; //20000 * 1MHz = 20ms OCR1B = TCNT1 + ServoPulse; //Enable OC //TIMSK
-
Thread
Atmega8 vergleicht keine Variablen
Endpunktermittlung mit dem Einsetzungsverfahren // Pdiff = Vout = AD-Wandler-Wert // 0Pa = 0,25V = 51 // 250Pa = 4,25V = 870 // // 0Pa = 51 * z + y > y = 0Pa - 51 * z // 250Pa = 870 * z + y // // 250Pa = 870 * z - 51 * z + 0Pa // 250Pa = 819 * z // z = 250 / 819
else {PORTB |=_BV(PB0);} //Ventil abgefallen (Tuer offen) _delay_ms(50); } return(0); } [/c]
-
Thread
1-Wire und non-blocking code (state machine)
popeligen schnarchprozessor wird das schwierig. Das läuft sogar auf einem standard 8051 (mit Keil C51 Compiler getestet). Und der teilt durch 12, hat also wahnsinnige 1MIPS an einem 12MHz Quarz.
synchronize to timer tick #define wait_us(us) AvrXDelay(&ds_timer, TICKS_US(us)); #define wait_ms(ms) AvrXDelay(&ds_timer, TICKS_MS(ms)); #else #define wait_sync() #define wait_us(us) delay_us(us) #define wait_ms(ms) delay_ms(ms) #endif [/c] Der Code nutzt wait_xx, wenn das Timing
-
Thread
Zwei Signale - eine Leitung
--- [/pre] Nit Näherungsweise T=RC ergibt sich z.B. mit C = Elko 4,7uF: R = T/C = 100ms/4,7uF = 22k Für genaue Werte: ausprobieren oder R als Poti mit 47k ausführen...
Nachtrag: Und/oder/nicht gibts auch als EIN IC : 74hc51 Dann bräuchte man nur noch einige von den Schmitt-Trigger Invertern die ja frei sind und nen AMV.
-
Thread
LC Display Ansteuerung
= P2.0 (sprich: 4-Bit Mode) Initialisierung laut Datenblatt: 1. Power ON 2. mehr als 15ms warten, nachdem die Beitrebsspannung von 4,5V erreicht ist 3. "Function-Set" senden 4. mehr als 4,1ms warten 5. "Function-Set" senden 6. mehr als 100us warten 7. Function-Set senden 8. Display
was improvisieren. --Wenn Du Assemblersprache benutzt, Anweisungen zaehlen. Ein klassischer MCS51- wie dein AT89C51irgendnevariante es vermutlich ist - ist ein Zwoelftakter, macht Quarz in Hertz durch zwoelf Anweisungen pro Sekunde. Ein paar Anweisungen brauchen die doppelte bis vierfache Zeit (bedingte
-
Thread
Erfahrungswerte Dig. Thermometer DS18B20?
einen DS1820 (sollte in dieser Zeit gleich sein) zum Testen gehabt. Im Testprogramm waren auch 750ms vorgeschrieben. Damit funktionierte das Auslesen. Allerdings habe ich das mit einem C51 gemacht. Grüße Matthias
Die 750ms sind der Maximalwert. D.h. wenn du zufällig einen super super sauschnellen DS18B20 hast, könnte der durchaus schon in 500ms fertig sein. Größere Toleranzen sind extrem unwarscheinlich. Ändere
-
Thread
Problem mit For Schleife
Distanzen wird der Fehler klein sein. Je kleiner die Distanz wird umso größer wird der Fehler. ms
frühestens 1/50s nach der vorherigen startet. Als ersten Ansatz könnte man ja die Zeitdifferenz in ms umrechnen, und dann ein weiteres Delay einfügen mit t_wait = 20ms - Zeitdifferenz(in ms)
-
Thread
Was ist das für ein Signal?
tatsächlich - das Einpfeifen, dann das "Rauschen". Könnte sein, nur der merkwürdige Rhythmus von 500 ms Sinus, 500 ms Daten. Das war bei Packet eher in variabler Länge. Hatte leider Auto-Notch eingeschaltet, daher hier noch mal Originalton. Werde aber mal versuchen, über die Sound-Karte PR zu dekodieren
P49564.7 5A [0x0A]3C 209 15:39:50 X 19350.1 Y 1104.9 Z 45569.5 T30+23.18 79 [0x0A]3B 209 15:39:51 X 19350.1 Y 1105.0 Z 45569.5 P49564.7 58 [0x0A]3B 209 15:39:52 X 19350.0 Y 1105.0 Z 45569.6 P49564.7 59 [0x0A]3B 209 15:39:53 X 19349. 1105.0 Z 45569.6 P49564.7 58 & [0x92][0x82][0xCA][0x02][
-
Thread
Was kann man mit 16Byte an RAM machen?
allerdings zu Lasten der Codedichte und Ausführungszeit. http://www.keil.com/support/man/docs/c51/c51_le_reentrantfuncs.htm
Peter D. schrieb im Beitrag #4829763: > Doch das geht sehr gut, z.B. beim Keil C51 Compiler. > Da der 8051 viele Operationen im RAM ausführen kann, wurde dadurch der > Code sehr kompakt und schnell. Lob den C51 mal nicht in den Himmel, der kann schon ganz schöne Böcke schießen
-
Thread
Projekt für den NXP 8051 "Mischanlage" in Planung
Der Controller ist vorgegeben "NXP 8051" und bestellt. Datenblatt ist hier zu finden : http://www.c51.de/c51.de/Dateien/Humerboards/NLB_LPC935.pdf Nun zum Projekt, ich plane eine Mischanlage für Getränke zu bauen. Die Gefahren und das beachten von Lebensmitteln usw is mir klar und werd ich beachten
IN LINE 185 OF C:\Basteln unsortiert\Ride\C File1.c : Function 'sleep' should return a value RC51 COMPILATION COMPLETE. 3 WARNINGS, 1 ERROR Habe Zahlen bei Sleep() eingegeben aber endert sich nix. Einmal beim Start initialisieren habe ich gemacht.
-
Thread
Treiber Silabs CP2102 USB zu UART in Win10
> Die installiert er auch brav, dann sagt er ' .... https://community.silabs.com/s/question/0D51M00007xeNnHSAU/cp2102-chip-doesnt-work-possible-knock-off-?language=en_US
Martin B. schrieb im Beitrag #7204476: > Im Gegenzug für diese > freundliche Maßnahme, blacklistet MS Hersteller, die Ihnen nicht passen. > Die laufen dann nur noch unter Linux. Humbug.
-
Thread
DS18B20 Datenformat
Zeichen _delay_ms(250); } return 0; } [/c]
WERT_Temp_Luft[8]; dtostrf(temp_S1_LUFT,3,1,WERT_Temp_Luft); //Float zu ASCII _delay_ms(5000); WriteStr_D_1(WERT_Temp_Luft); // schreibe vier Zeichen _delay_ms(250); } return 0; }
-
Thread
Timer in Interrupt Service Routine starten und stoppen
Münze (in meinem Fall 50c, 1€ und 2€) eine unterschiedliche Pulsanzahl mit einer Pausenzeit von 100ms pro Puls aus. Dieses Pulse zähle ich per externen Interrupt. Um jetzt die eingeworfene Münze erkennen zu können, fasse ich die Pulse in "Blöcke" zusammen, damit ich erkennen kann, dass z.B zuerst eine
externer Interrupt EIMSK|=(1<<INT4); sei(); } void loop(void) { PORTA=0x00; WaitMs( 500); PORTA=0xFF; WaitMs(500); } ISR(INT4_vect) { TCCR5B&=~((1<<CS52)|(1<<CS50)); //Timer löschen //Timer 5 1024 Prescaler TCCR5B|=(1<<CS52)|(0<<CS51)|(1<<CS50); //Timer
-
Thread
mit was starten? Atmega8 - Einsteiger will keinen Mist kaufen
Für Pascal-Liebhaber gibt es natürlich auch noch Turbo51 von Igor Funa. In Verbindung mit einem 8051 mit integriertem ser. Bootloader (z.B. von Atmel) hat man eine kleine, feine Lösung, für die es sogar zwei verschiedene IDEs gibt, wenn man die Kommandozeile nicht so mag. Ein Controller als Beispiel: AT89C51RB2 von Atmel. Man kann jedoch Turbo51 für 8051er jeder Art benutzen.
-
Thread
Alte Eproms sichern, welches Gerät?
Beitrag #8077893: > Im Ursprung hat man "dumm" programmiert, je Adresse eine feste Zeit, > glaube 10ms. Den 2708 musste man noch reihum mit Impulsen von 1 ms programmieren, alle 1024 Zellen abwechselnd, damit sie sich nicht überhitzen. Feste 50-ms-Impulse gab es erst ab 2716. Auch die Algorithmen
weiß > ich nicht. > Da muss noch ein Besitzer eines T48 kontrollieren. Du schreibst ja "25V/50ms" Ich würde vermuten, daß mit "500us" "500µs" gemeint ist, was ja Deinen 50ms entspräche?
-
Thread
Suche Funkmodul mit ca. 1km Reichweite (für GPS-Übertragung)
125 KHz Nutzbandbreite und mit Sicherheitsabstand 200 KHz. Bei Weightless P sind für 20Bytes , 400 ms und 12,5 KHz. LoRa belegt bei 500 KFz den Kanal für über 10 Minuten. Obendrein blockiert LoRa 200 KHz. In den 200 KHz für Lora passen 16 Weightless P Kanäle rein. Obebdrein ist Weightless P in 400 ms fertig. 16x3 = 48. Es passt bei Weightless P also 48x mehr Objekte auf die gleiche 200 KHz Bandbreite. Die Grafik zeigt eine Übersicht von LoRaWAN zu Weightless P.
-
Thread
Arduino Timerprobleme - suche programmierbaren Oszillator
das auf Basis von millis() machst, kannst du die Blink-Intervalle natürlich auch nur im Raster von 1ms einstellen. Klar könnte man auch 0,1ms oder gar 0,01ms Intervalle benutzen, was aber nichts daran ändert, dass man damit nicht jede beliebige Frequenz exakt erzeugen kann. Für 37 Hz brauchst du
das per se nicht driftet, aber meinen Fehler verdoppelt. So kommt nämlich immernoch der Versatz von 1ms in den gleichen Abständen zusammen, UND zusätzlich wird in der gleichen Phase 1ms hinten abgezogen. Damit verliere ich also 2ms. An die micros() Funktion habe ich auch schon gedacht, so sollte ja