-
Thread
DANKE!
beschaffende Zahlen. Zb. Bundesamt für Statistik aber man sollte den Spruch "Traue keiner Statistik die du nicht......" im Hinterkopf halten denn Parteien schönen gerne Zahlen für eigene Zwecke. Ab jetzt wirds
. PS: Alle Angaben ohne Peng Peng. Ich habe mir die Zahlen in knapp 15 Minuten zusammengesucht und möglichst Aktuelle Zahlen aus Bundesbestänen genommen.
-
Thread
Funkuhr in VHDL
Hallo zusammen, ich suche nach einem ansatz, um das dcf77 signal in logische nullen und einsen zu wandeln. Kann mir von euch jemand einen prinzipiellen ansatz dafür geben ? ich würde das ganze gerne in vhdl modellieren und keinen prozessor verwenden. grüsse markus
musst du nur bei der 59 sekunde. Mit VHDl ohne Kontroller musst du Dir nat^rlich erst mal einen Zâhler programmieren..
-
Thread
Entprellen in C, schlanke Routine
durchgekaut wird. Wo ist das Problem? 10ms Timer-Interrupt { Wenn Taste gedrückt { Zähler um 1 erhöhen } else { Zähler auf 0 setzen } Wenn Zähler = 5 { Aktion ausführen } Wenn Zähler > 100 { Aktion_bei_lange_gedrückter_Taste ausführen
Besser: Wenn Tastenzustand anders ist als der intern gemerkte entprellte Zustand > Zähler um 1 erhöhen > } else { > Zähler auf 0 setzen > } > > Wenn Zähler = 5 { Wenn Zähler = 3, denn ein Zweibit-Zähler kann nunmal nur von 0 bis 3, und bei kleinen Controllern
-
Thread
Ring-LookUp-Table für 2 unabhängige Sinussignale
Beispiel für (fast) beliebig viele bits: .equ nBits = 10 .equ nMask = (1<<nBits)-1 ; Erzeugt Einsen bis zur letzten ; verwendeten Bitstelle .equ nBaseAddr = 0x10000 ; Achtung: die niedrigen nBits müssen Null ; sein
fertig LPM rd, Z+, das macht dann alles auf einmal. Falls nicht, ist es einfacher, rückwärts zu zählen, also mit dem letzten Wert anfangen und dann decrementieren, bis alles null ist. Dann entfällt die ganze Vergleicherei. Falls Speicherplatz ein Thema ist, reicht natürlich auch ein Viertel der Tabelle
-
Thread
Ingenieure braucht das Land (angeblich)
abgesetzt werden können. Leider gibt es nach wie vor zu wenige INGs: Von 1993 bis 2004 ist die Zahl der Abgänger von 66.000 auf knapp die Hälfte gesunken, was epidemiologisch gesehen nicht nur an den geburtenschwachen Jahrgängen liegen kann. Ein VDI-Sprecher beklagt, daß gerade viele Wachstums-
sollen. Und das, obwohl immer weniger Unternehmen nach Tarif bezahlen wollen - der unter diesen hohen Zahlen liegt - und günstigere kurzfristige Leiharbeitsmodelle bevorzugen. Sind Stellenanzeigen mal keine dummies, möge sich jeder sein eigenes Urteil zu diesen Zahlen bilden. Merkwürdig ist, dass nie
-
Thread
binäre Quersumme einer Zahl ermitteln
Hallo zusammen, ich möchte die Quersumme, also die Anzahl von Einsen in einem Byte ermitteln. Gibt's dafür eine einfachere Möglichkeit als die Bits zu zählen? 01110000b --> 3 10010101b --> 4 Für so eine kurze Zahl gehts ja noch, aber wenn die Variablen größer
uint32_t oder gar uint64_t kann das zusammenzählen eine ganze Weile dauern. Bisherige Lösung: Zahl=0xaa; for (i=0x01, z=0; i; i=i<<1) if (i&Zahl) z++;
-
Thread
Schnell ein paar Zahlen sortieren
bei 16 Zahlen im Bereich 0 bis 15 kannst du aber schneller als O(n * ln(n)) sortieren. Du benötigst nur ein Array[] mit 16 Einträgen und zählst das Vorkommen jeder der 16 möglichen Zahlen. uint8_t Data[16];
, Einsen, Zweien usw. zählen. So benötigst du gerade mal 16 Bytes um alle Zahlen zwischen 0 bis 15 einsortieren == zählen zu können. Sind die Zähler im Array zb. vom Typ Byte so kannst du in dieses 16 Bytes
-
Thread
Assembler und Mega48
Ich schiebe zwar meist nur EINSen durch, aber: Wenn du eine 3 (DREI) durchschiebst (4 mal), dann bleiben schon die beiden Einsen, aus denen die 3 besteht, erhalten. Also 00000011 ist die 3, eine 1 in der Einer-Stelle, eine in
Wenn ich das mache, um "sprechende Bitnamen" zu nutzen, dann schiebe ich keine Dreien sondern nur Einsen... ...
-
Thread
Ideen gesucht zum Experimentieren mit dem TDA1543 DA-Wandler
dies heraus zu finden so einfach gestaltet habe: main: adiw r30,1 ; Doppelregister aufwärts zählen mov temp3,r30 ; kopieren mov temp2,r31 ; oberes Register kopieren rcall out_rechts mov temp3,r30 ; weil zuvor durch das Schieben alle Einsen verschwunden sind mov temp2,r31
-
Thread
LCD Controller für 640x480 LCD mit mega8515
LCD funktioniert. Falls nicht, kann man das LCD auch als SW-LCD mit der Schaltung und dem Programm einse SW LCD's missbrauchen? mfg Philipp
hallo, gibt es den eine möglichkeit um texte oder zahlen zu senden ohne das ich jetzt jedesmal vor dem zusenden zeichen zb 14 192 a senden muss,also zb. 14 15= für text 14 16= für zahlen wäre das den möglich mfg kay
-
Thread
Taschenrechner
Zeit die du in den Eigebau stecken würdest ins Lernen investiertst schreibst du garantiert nur noch Einsen.
Die HP48 Emulatoren sind ganz nett wenn man mal zwei Zahlen addieren will, ich hab sie selbstverstaendlich auf allem einen Rechnern installiert, aber die Bedienung mit der Maus nervt sobald man etwas mehr rechnet. Ich hab mir extra einen zweiten HP48 gekauft
-
Thread
Hat schonmal einer ein Opel TID ->erfolgreich<-angesteuert ?
kannst Du das jetzt in Binärcode umrechnen und erhältst für "F" 01000110 und für "G" 01000111. Jetzt zählst Du die Einsen. Ist die Anzahl ungerade, wird das Paritätsbit gesetzt, und wenn nicht, gelöscht. Das Paritätsbit ist das Bit 7, welches für darstellbare Zeichen immer gelöscht ist. Für "F" wird das
Nein bin nicht weiter gekommen. S ist hex 53 ist binär 01010011 -> 4 Einser E ist Hex 45 ist binär 01000101 -> 3 Einser R ist Hex 52 ist binär 01010010 -> 3 Einser V ist hex 56 ist binär 01010110 -> 4 Einser U ist hex 55 ist binär 01010101 -> 4
-
Thread
DCF 77
Führende Nullen sollte man sich schleunigst abgewöhnen. Unter C bedeuten sie nämlich, daß diese Zahl als Oktalzahl interpretiert wird. D.h. es geht nur für Zahlen <= 7 gut. Es sei denn Du bist wirklich noch so ein Freak aus der Lochkarten-Ära, der oktal rechnet. Peter
man dann auch Kathoden der selben Röhre gegeneinander MUXen um fliessende Übergänge benachbarter Zahlen/Ziffern zu realisieren, darüber wird dann nochmal geMUXt, um die Helligkeit der Uhr einzustellen (zB an die Umgebungshelligkeit anzupassen). Ohne Expander hat man viel weniger Freiheiten was die
-
Thread
BCD Z ählen (AVR ASM)
: rjmp main interrupt0: ;wird aufgerufen wenn SW2 gedrückt ldi zahler, 0b00000000 ;Zähler auf null setzen _sektor_x1: inc zahler ;Zähler +1 mov leds, zahler ;Zähler in Leds kopieren com leds ;Register
: rjmp main interrupt0: ;wird aufgerufen wenn SW2 gedrückt ; ldi zahler, 0b00000000 ;Zähler auf null setzen ;Zähler +1 mov leds, zahler ;Zähler in Leds kopieren mov shift_cnt,zahler andi leds,15 ;nur die
-
Thread
AVR Assembler "Pause nach beliebiger dauer"
mp ; an Datenrichtungsregister ;Pull-Up's reinschalten (1 bei Tastendruck) ldi mp,0xFF ; 8 Einsen in Universalregister out PORTD,mp ; und an Port D (das sind jetzt die Pull-Ups!) ;LED's ausschalten ldi mp,0xFF ; 8 Einsen in Universalregister out DDRB,mp ; und in Datenrichtungsregister
SREG sichern - Timer-Startwert ausgeben (tcnt0) - Ein oder mehrere Register hoch(oder runter)zählen, mit denen du die Anzahl der Interrupts zählst und damit Zeiten zählen kannst. - In Abhängigkeit der Zählregister bestimmte Arbeiten ausführen oder eben nicht (man kann bei genügend
-
Thread
STK 500 Anschluss
Hallo Max! Der erste Fehler liegt in der Abbruchbedingung der ersten Schleife: "loop until zahl > 7" deine Zahl wird herunter gezählt, ist also im ersten Schleifendurchlauf grösser als 7 (nämlich gleich 254). Eine Tastenabfrage sehe ich nirgends... Im Prinzip müsstest du die Abbruchbedingung deiner Schleife von der Grösse der Zahl und der gedrückten Taste abhängig machen. Gruß Rahul
-
Thread
74HC595 Ansteuerung
Also ich habe mir das schon so gedacht das ich eine For Schleife mache in der ich immer von 1 bis 50 zähl und dann immer am anfang ds kurz auf LOW geh dann shcp high low und stcp high low dann müsste es ja eigentlich die 0 immer weiter geschoben werden.
Das einfachste ist doch eine sereielle Ausgabe von 55 "einsen" und einer "0". Das sind 56 Bit, weil 7 Käferlein mal 8 Bit... Davon brauchst du zwar nur 50, aber der Rest kann ja ignoriert werden. Du gibst also in einer Schleife diese 56 Bits an den seriellen
-
Thread
AT89C51SND1C
verwendet. Setzt man den Port0, der die Leitungen AD0-7 bildet, per Befehl (z.B. mov P0,#0FFh) auf Einsen, werden die Pull-Ups abgeschaltet, also hat man hochohmige Eingänge. Das bedeutet, dass Port0 keine log. 1 ausgeben kann, wenn man ihn nicht als Datenbus, sondern als Ein-/Ausgang verwendet. Daher
@Markus: Lies doch mal das 8051er Handbuch, da stehts drin. Wie sonst sollen wohl die Einsen auf den Datenbus kommen? Realisiert sind die Pull-Ups durch Fets, die bei den MOVX- sowie allen anderen Befehlen, die den Port 0 über Software ändern, abgeschaltet werden. Dadurch hat man einen hochohmigen
-
Thread
Probleme beim rechnen mit dem Vorzeichen
ausgeben. Ich verwende dafür folgenden Code: hundert=zeitH/100; zehn=(zeitH-hundert*100)/10; einser=(zeitH-hundert*100-zehn*10); Dazu wird immer 48 addiert für ascii. Wenn die Zahl kleiner als 127 ist, dann ist es kein Problem Ist Sie größer werden z.B für 128 /.( ausgegeben. => vermutlich
while( zeitH >= 100 ) zeitH -= (++hunderter)*100; while( zeitH >= 10) zeitH -= (++zehner)*10; einser=zeitH;
-
Thread
Alternative zum 2er-Komplement???
Hallo. Kennt jemand Alternativen zum 2er-Komplement zur Darstellung von negativen Zahlen im Rechner? Leider bieten die Suchmaschinen keine passablen Ergebnisse. Ein Stichwort reicht, dann schau ich mir die Tatsachen selbst an. Danke
Das einser-Komplement oder BCD-Kodierung
-
Thread
8 bit Zahl in ASCII Code umwandeln?
Problem, wo ich jetzt denkmäßig gar nicht mehr weiterkomme. In der Speicheradresse 0x0060 liegt die Zahl z.Bps. 42. Diese möchte ich auf einem LCD Display 2*16 Zeichen ausgeben lassen. Dies bedeutet ja das ich einmal die 4 und dann die 2 ausgeben lassen muss. Diese würde ich vorher gerne noch einmal im
x inkrementieren ..... wenn die Sache mit den Zehnern zu Ende ist, dann bleiben nur noch die Einser. Kurz gesagt einfach solange die höheren Stellen abziehen, bis es negativ wird und dann mit der nächstniedrigen Stelle weitermachen. In asm kann man das schön implementieren, wenn man es richtig
-
Thread
was bedeuten diese befehle
glaub Du hast das mit 2er-Komplement net so ganz komplett verstanden. Das 2er-Komplement einer Zahl x ist genau die Zahl y, welche in einer n-Bit Binärdarstellung mit der Zahl x zusammengezählt (addiert) eine 1 und n Nullen ergibt. Da dann die erste 1 im Carry (Überlauf in diesem Fall landet), kann
Zweierkomplement y auch als negatives Äquivalent von x ansehen : y = -x. Das heißt, wenn man von einer Zahl a eine Zahl b abziehen will kann man auch stattdessen das Zweierkomplement der Zahl b dazu-addieren. Umgederht gilt für die Addition a+b auch a-(-b). Nimm einfach mal den Windows-Taschenrechner und
-
Thread
Newbie: Probleme mit Konvertierung Binär --> BCD
einmal, was Du überhaupt machen möchtest. Meinst Du nun eine Umwandlung von Binär (nur Nullen und Einsen) nach BCD oder von Dezimal (unser "normales" Zahlensystem) nach BCD? Und wieviele Stellen soll der Eingangswert maximal haben? Davon abgesehen, hat Achim natürlich recht. So geht es auf keinen Fall
einen Zählerwert in einem Register (temp), z. Bsp. 34567. Den möchte ich gern in seine einzelnen Zahlen zerlegen, so das jede Stelle in einem Register steht. Und nein, es ist kein Aprilscherz. Mir schwirrt nur langsam der Kopf vor lauter Zahlen und Konvertierungen. Das cpi und subi nur 8 Bit können
-
Thread
Fernbedien RC5 Empfänger
Der Timer 0 kann doch nur aufwärts zählen. Um nun die Schritte bis zum nächsten Interrupt anzugeben, stellt man sie üblicher Weise als negative Zahl dar. Ist ja viel besser lesbar. Was paßt dem IAR daran nicht ? Peter
ich da etwas übersehen? Bei einem "durchlaufenden" 8Bit timer hätte ich jetzt erwartet, dass der zähler auch die vollen 8 bit zählt. gruß dtm
-
Thread
7 Segment anzeige
die anode schalte ich über einen PNP transitor um. man muss halt noch ausprobieren, welche hex zahl auf dem port welcher zahl entspricht, was man dann einfach in einem array speichert. man könnte auch latchs verwenden, damit die LEDs immer an sind und man nur die adresse ändert. fals du es so wie
ovf_isr(void) { if((te<-40)||(te>130)||(nodata==1)) { zehner=11; einser=11; // PORTD.4=0; } else { if(te<0) //negative werte { e=te*(-1); zehner=11; } else e=te; einser
-
Thread
serielle schnittstelle 10 bit
UART_SendByte((swap>>2)); durch den code schneidet er zwar schön ab, füllt dann von hinten her alles mit einsern bis zur ersten eins auf. ich bekomme dann so sprünge wie: 193 11000001 195 11000011 die 194 11000010 unterschlägt er hier einfach! (das macht er systematisch so. die nächste zahl ist dann
-
Thread
32bit long in 4 byte aufteilen
einteilen(immernoch Strings). Und Schlussendlich mit einem Kleinen Progrämmchen, die Strings mit einsen und Nullen, wieder in Bytes umwandeln. Klingt zwar etwas kompliziert, sollte aber gehen.. MFG Nik
! Du kannst das auch auf diese Weise Lösen:(nur so ne art Pseudo-Code) wert = (deine 32 bit zahl als long-variable) if wert = 4294967296 then firstbyte = 255 : secondbyte = 255 : thirdbyte = 255 : fourtbyte = 255wenn die zahl gleich die höchstmögliche ist dann alle bits auf 1 setzen 'wenn
-
Thread
Laptop-TFT am PC Gesperrt
vorneweg, ich hab keine ahnung obs geht aber mein erster gedanke wäre, das ganze mit einem einfachen Zähler zu machen, also diskret aufzubauen. wiegesagt, nur eine idee
hi, was seit ihr bereit zu zahlen ? :-) sag mal so. sie hatten mit versand so ca. 12 Euro pro stück gekostet mfg Kay
-
Thread
Effizientes Bitcount für 8, 16 u. 64 Bit?
selber nicht so ganz, aber es funktioniert tatsächlich. Es funktioniert auch nicht mit beliebigen Zahlen, z.B. gibt 0xffffffff % 255 natürlich 0 und nicht 0x03fc, aber bei den Zahlen die hier auftreten können funktioniert es wohl. Ich hoffe, das war soweit verständlich, wenn nicht, dann fragt genauer
Anforderungen an. Steffen PS: Funktioniert der Code eigentlich? Fehlt da nicht ein Register zum Zählen der Einsen (r7 ist Teil der 32-Bit Variable und zählt gleichzeitig die Einsen)?
-
Thread
Pulsdauererkennung
meinst. Du teilst nicht durch 8, sondern durch 400 (einmal Überlauf abwarten und dann bis 0x91 zählen lassen). Hmm, wer setzt denn das TOV0 eigentlich jemals wieder zurück? Ich denke, Du mußt das mit jedem Neustart des Timers manuell zurücksetzen, da Du ja keine Interrupts benutzt. Jau: ``
das der Empfänger einen guten Empfang hat. 59 Pulse sind es auch immer. Habe bis jetzt keine andere Zahl gehabt. Ich muss schon mitschreiben um behaupten zu können dass ich irgendetwas falsches ermittle. Das mit dem 10ms Raster ist eine gute Idee, werde ich mal nachverfolgen. Aber Joerg hatte
-
Thread
Stack overflow durch nested Interrupts?
übliche PC-Hobby-Hacker auf µC umsteigt. Einem PC mag es nichts ausmachen wenn er mal ein paar float-Zahlen berechnen muß. Der macht das in Hardware und Speicher ist eh genug da. Ein µC braucht aber diverse Routinen die float per Software nachbilden was Flash, RAM und Geschwindigkeit kostet. Deswegen
Schwellwertes verhindern. Die üblichen Entprellbeispiele arbeiten aber viel viel einfacher: Sie zählen nur, wie oft hintereinander Nullen bzw. Einsen auftreten, und wenn der Zähler z.B. bei 4 anlangt, d.h. 4 Einsen hintereinander gelesen wurden, dann wird dieser Eins-Zustand übernommen und man zählt
-
Thread
serielle Datenübertragung - Problem !
vorgeschichte: ich schicke immer einen wert vom pc an den pic und der pic schickt als antwort einen andere zahl an den pc ! vom pc schicke ich ein paar verschiedene zahlen weg und der pic antwortet je nach zahl mit einer anderen zahl ! in meinem jetztigen schicke ich den pic die zahlen 75; 77 und 77. wenn
und bekomme auch immer die dementsprechende antwort, jedoch wenn ich einmal die zahl 75 schicke bekomme ich keine antwort mehr ! dazu muss ich sagen das ich die zahl in einem unterprogramm schicke und ihm nur die zu schickende zahl übergebe, d.h. es läuft immer das selbe unterprogramm
-
Thread
DCF77-Uhr mit ATTINY12
würde ich nicht fragen. Mal sehen ob ich es noch zusammenbekomme. Wenn innerhalb eines Zeitframes 2 Einsen zu Null werden(Signalabbruch),sind alle deine Bedingungen erfüllt und du hast trotzdem eine falsche Zeit. Wenn ich mich recht entsinne geht das beim Datum auch. Bei einer Schaltuhr kann das fatal sein
Das ist für die Rundung Bei realen Zahlen ist es einfacher (xtal / 64 + 128 ) / 256 = xtal/4 + 0.5 aber beim Rechnen mit INTEGER zieht man die Rundung vor die Division.
-
Thread
Tasten entprellen - Bulletproof
> Nein, der Zähler ist invertiert, also der Ruhezustand ist 11. Okay, also zählst du 11, 00, 01, 10, 11, ... Wenn ich die Logik richtig verstehe, wird der Zähler nur inkrementiert, wenn i = 1 ist (aktuell erfasster
(verwirfst, überschreibst), dann kann da ja nix zählen. ...
-
Thread
Funkübertragung
müsste doch eigentlich -______- sehen. Ich sehe aber alles andere als das, nähmlich irgendwelche einser und nuller. Ich kann diese beim Besten Willen nicht mit h81 deuten. Das kann aber auch nicht am Funkmoul liegen, denn dies ist auch so wenn ich am Sendeprozessor direkt auf TXD messe. Gruß Ralph
frequenzmodulation benuetzen oder einfach den hf-traeger ein und ausschalten (H/L) wer zaubert dir die zahlen auf dein oszilloskop? ed
-
Thread
10 bit nach Dezimal
low(100) rcall bin2digit ldi decH, high(10) ldi decL, low(10) rcall bin2digit ; Einser-Stellen bleiben übrig mov digit, binL rcall sendDigit ret ;-------------------------------------------------- bin2digit: clr digit label1: ; vergleichen mit 10er-Potenz
157 314 625 1250 2502 Diese Zahlenfolge stellt ein Zahlensystem dar. Die Eigenschaft jeder Zahl ist, daß sie größer als die Summe jeder vorangegangen Zahlen ist. Die Gesamtsumme beträgt 5000. Im Binärsystem ist die Folge zum Beispiel: 1 2 4 8 16 etc. Um jetzt deinen 10-Bit ADC-Wert zu
-
Thread
Tastaturaufzeichnung mit AVR
an die serielle Schnittstelle gesendet. Leider geht's erst ab 57600 gescheit, da kommen nur keine Einsen oder Nullen an, sondern andere Zeichen. Die Anzahl stimmt aber. Wär' nett, wenn Du Dich/Ihr Euch mal dazu äußern könntest/könntet! Sebastian
zurückversetzen. Sowas realisiert man am besten mit dem T/C 0 oder aber auch mit einem einfachen Software-Zähler. Na dann gebt mal Feedback, Jungs Gruss Stefan
-
Thread
protokoll
Hallo Gill, deshalb nutzt man auch unter anderem den ASCII-Zeichensatz. Da können Zahlen von Buchstaben oder Steuerzeichen eindeutig unterschieden werden. Die Zahl zwei z.B. ist damit als Dezimalwert "52" (34h) festgelegt, die Zahl drei als Dezimalwert "53"(35h) usw.. Um eine zweistellige
11111111|11111111|denn mein data kann ja auch so aussehen:00001111|11110000.somit hatte ich wieder 8 einsen hintereinander.was meint ihr dazu?
-
Thread
C Anfänger: PWM Signal auslesen Gesperrt
<90s2313.h> #include <delay.h> #define PWM PORTD.0 void main (void) { unsigned char zaehler1 = 0; unsigned char zaehler2 = 0; float ergebnis; DDRD=0; //auf eingang schalten DDRB=255; //auf ausgang schalten start: zaehler1=0; //zaehler auf null setzten zaehler2
//und eine neue messung losgeht while ( PWM==0 ) //warten bis eine 1 kommt { zaehler1 ++; //zähler alle 2µshochsetzen delay_us(2); }; while ( PWM==1 ) //warten bis eine 0 kommmt { zaehler2 ++; delay_us(2); }; ergebnis=(zaehler1