-
Thread
Wunsch MCU, wie würde eure aussehen?
RAM2 $5000-$8fff Austauschbare RAM-Bank 2 IO $9000-$bfff Der IO Bereich eben, kann sich alle x Bytes spiegeln um Dekodierlogik zu sparen. ROM1 $c000-$dfff Austauschbare ROM-Bank 1 ROM2 $e000-$ffff Austauschbare ROM-Bank 2 (Reset legt diese auf Page 0) Alle möglichen Bauformen, vom DIL bis zum
SMD, am Besten TQFP - 3V3 für vollen Takt - 5V tolerante Eingänge - SPI mit FIFO Buffer (viell 16Bytes) - Hardware MUL, DIV ;-) - ...
-
Thread
bits eines bytes umdrehen
du willst also die bits an einer seite des bytes "spiegeln", oder? hab zwar von c nich so die ahnung, aber nimm einfach den inline-assembler und roll das eine byte rechts raus ins carry-flag und von da linkswärtig wieder in ein anderes byte...
Hallo, einfach XOR mit 0xFF byte ^= 0xFF ; Gruss Thomas
-
Thread
Inline Assembler- Bits spiegeln
Wenn du 256 Bytes RAM frei hast, geht das mit einer Übersetzungstabelle (byte array) deutlich schneller (sowohl in C als auch in Assembler): [code] static uint8_t swap[256] = { 0x00,0x80,0x40,0xc0,0x20,0xa0,0x60,0xe0
; 1 clr ZH ; 1 clr tmp ; 1 subi ZL,Byte1(LUTNEGOFFS) ; 1 sbci ZH,Byte2(LUTNEGOFFS) ; 1 sbci tmp,Byte3(LUTNEGOFFS) ; 1 out RAMPZ,tmp ; 1 elpm R16,Z ; 3 pop tmp
-
Thread
AVR STN-Display-Tester (320x240)
Biddeschön Die spiegeln echt brutal, das war mir bisher nicht aufgefallen, weil ich die Folie noch draufhatte...
Das Problem ist dabei nur der SRAM. Im Grafikmodus: 320x240=76800bits=9600Byte Im Textmodus (8x8): 40x30=1200Zeichen Im Textmodus würde ein mega16 aufwärts ausreichen. Für den Grafikmodus benötigt man ein externes RAM, und kann dann direkt die Schaltung von meinem 640x480
-
Thread
43.000 Computer-Experten fehlen in Deutschland.
Block-IFs, DO-WHILEs, WHILEs und FOR, >das wurde aber nicht erwähnt) Ich 1975. War ne Kiste mit 32kBytes RAM 16Mhz für 50000DM. Die Krönung waren user defined funktions mit denen sogar Rekursion möglich sein sollte. Schlimmer waren die vielen Primzahlprogramme. Unser Pauker (Dr. rer. nat. Dipl. Mathematiker
ändern Imagekampagnen diverser Großkonzerne garnichts, denn ein Umgeben des schwarzen Lochs mit Spiegeln erhellt selbiges nicht . Diese Reflexion ist Selbstbeweihräucherung und damit eine Rekursivformel ohne praktischem Inhalt.
-
Thread
Mysteriöse Systemfehler
;) Wenn ich jetzt 2 neue Platten kaufe - wie kann ich die jetzigen Platten möglichst einfach spiegeln? ich will nicht schon wieder alles neu installieren müssen. Grüsse Tobias
) sei ausschlaggebend, dies deshalb, weil bei modernen Festplatten die Magnetfelder der einzelnen Bytes auf der HD sich überlappen und es deshalb normal ist, wenn die ECC-Hardware irgendwelche Bits korrigiert. Stimmt das? In dem Falle wäre nämlich auch meine Maxtor nicht wirklich defekt; Nur der eine
-
Thread
Frage betreffs externem RAM an ATmega 2560
nicht benötigten Adressleitungen. Die Reihenfolge ist Wurst. Du willst nicht wirklich wissen, wo die Bytes physisch im SRAM landen, von außen sind sie genau da, wo Du sie erwartest (aus Sicht des Controllers).
gemappt. Man kann mit einem Softwaretrick die unteren 8kB eines externen 64kB SRAM nach 0x8000 spiegeln, d.h. an 0x8000 hat man dann 2 8kB RAM-Bänke, die man per Software auswählt. Das reduziert natürlich drastisch die Performance und sollte man nur dann machen, wenn man wirklich die vollen 72kB
-
Thread
Ton mit ca 30.000 Herz mit atmega8 erzeugen
wieder die leute die einem erzählen, dass man nur einen Teil der Sinustabelle braucht da man durch spiegeln etc des ersten viertels die gesammte kurve rekonstruieren kann. Aber der Aufwand lohnt sich hier wohl nicht, da es so einfacher zu verstehen ist und was sind schon 16 Byte ;)
-
Thread
EEPROM Daten wegen Zugriffszeit im RAM Spiegeln?
musst erst das EEPROM ansprecehn, dann den Lesebefehl absetzten. > Danach die Adresse und Anzahl der Byte(s) übertragen. > Diesen Protokolloverhead hast du bei EEPROM immer. > Naja man muß das auch ins RAM spiegeln, also Initialisierung laß ich mal nicht gelten. Adresse laden und und Bytes übertragen
eine Sensorkennlinie in soooo hoher Geschwindigkeit lesen muß als das es sich lohnt das ins RAM zu spiegeln...
-
Thread
Bits drehen bzw. spiegeln
ich habe z.B. folgende Bitkombination: "01100100" wie kann ich die Bits in ASM drehen bzw. spiegeln, so daß: "00100110" herauskommt ? Achso, ich verwende einen PIC16F627.
Damit wird nur die untere und oberer Hälfte des Bytes getauscht, glaube ich...
-
Thread
Hilfe bei #Define
hoffe ihr versteht mich) So eine EEProm Routine sieht so aus: void Write_SPI_EEProm (void){ BYTE HighAdress = 0; BYTE LowAdress = 0; BYTE Daten1 = 0; BYTE Daten2 = 0; BYTE Daten3 = 0; BYTE Daten4 = 0; BYTE Daten5 = 0; BYTE Daten6 = 0; BYTE Daten7 = 0; BYTE Daten8 = 0; //BYTE status =
spiTransferByte(Daten1); //data spiTransferByte(Daten2); //data spiTransferByte(Daten3); //data spiTransferByte(Daten4); //data spiTransferByte(Daten5); //data spiTransferByte(Daten6); //data
-
Thread
Integer-Wert in ASCII-char
| g | h | +---+---+---+---+---+---+---+---+ um diesen String (ohne zusätzliches Array) zu spiegeln, genügt es jeweils das erste mit dem letzten Element zu vertauschen, dann das zweite mit dem vorletzten usw. bis man in der Mitte angekommen ist. +---+---+---+---+---+---+---+---+ | a |
#if XPAR_MICROBLAZE_0_USE_ICACHE microblaze_init_icache_range(0, XPAR_MICROBLAZE_0_CACHE_BYTE_SIZE); microblaze_enable_icache(); #endif #if XPAR_MICROBLAZE_0_USE_DCACHE microblaze_init_dcache_range(0, XPAR_MICROBLAZE_0_DCACHE_BYTE_SIZE); microblaze_enable_dcache
-
Thread
ATMEL billiger und leistungsfähiger als PIC
20, Temperaturbereich -40 ... +125 °C, 8-bit Program Memory, 16 KBytes, Self-Write yes, RAM, 768 Byte, EEPROM 256Byte, I/O-Pins 15, 1 8-bit Timer, 3 16-bit Timer, Geschwindigkeit 48 MHz, Internal Oscillator 16 MHz, 32 kHz. Anschlüsse / Schnittstellen: 9 ADC, 1 A/E/USART (Auch USB), MSSP (SPI/I²C
: Ich habe mir mal die PICs angeschaut, aber die die ich da gesehen hatten konnten damals nur 16 Bytes auf einmal aufrufen, den Rest musste man per Bankswitching machen. Auch waren die für die ersten Sachen die ich machen wollte damals zu langsam. AtMegas hab ich mir dann mal angeschaut als ich eine
-
Thread
reihenfolge der bits in einem byte umdrehen
wirklich ist? Das letzte Mal, als ich es nachgerechnet habe, war die simple Schleife bei einem Byte, das es umzudrehen gilt, kürzer und schneller.
zugreifen: [c] PROGMEM uint8_t bit_revers_tab[256] = { 0x00, 0xF0, 0x40, 0x20, ...}; uint8_t my_revers_byte; uint8_t my_byte; my_byte = 0x01; my_revers_byte = pgm_read_byte(bit_revers_tab + my_byte;); [/c] Das ist zwar unschlagbar schnell, dafür schmerzen die 256 Tabbellenbytes vielleicht.
-
Thread
NMEA - Protokoll / UBLOX SAM - LS / ATMEGA 16
Beschreibung: Funktion wird verwendet um Bytes an das Display hinauszuschreiben. *******************************************************/ void LCD_Out(char out, int reg) { out = Spiegeln(out); //Der zu sendende Charakter muss noch gespiegelt
Kommenatere unterhalb *******************************************************/ unsigned char Spiegeln (unsigned char c) { unsigned char i, back; //i = Zaehlvariable // back der gespiegelte unsigned char for (i =0; i < 8; i++) //Algorithmus zum spiegeln eines unsigned
-
Thread
avr910 defekt?
Blödsinn mit (häufig) zufällig veränderten Bytes im EEPROM bei AVRs! Das größte Problem an der Technik liegt meist zwischen den Ohren des Anwenders ;-) Anstelle des Threaderöffners wäre ich längst beim nächstgünstigsten Internetshop vorbeigeschlendert
TravelRec. wrote: > Blödsinn mit (häufig) zufällig veränderten Bytes im EEPROM bei AVRs! Das > größte Problem an der Technik liegt meist zwischen den Ohren des > Anwenders ;-) Anstelle des Threaderöffners wäre ich längst beim > nächstgünstigsten Internetshop vorbeigeschlendert
-
Thread
LCD Datenleitungen invertieren
Software ist da viel flexiebler, da gibt es keine Ebenenbeschränkungen und Leitungskreuzungen. Das Spiegeln eines Bytes wurde hier schon oft erläutert, ist überhaupt kein Problem. Peter
, wenn du mal nen String senden willst, musst du den mit Hex-Zeichen zusammenbaun. Aber ne 128/256Byte Flash-Tabelle wäre auch kein Problem. Dann wäre man sogar freigestellt die Datenleitungen nach *beliebigem* Schema zu verkabeln.
-
Thread
Korrelation ist besser statt hohe Sendeleitsung!!! Gesperrt
verschiedene Signale verwenden. Dies würde die Übertragungsrate drastisch erhöhen. Um beispielsweise ein Byte zu übertragen bracht man nicht 8 Signale zu übertragen, sondern nur 2 und hat somit Zeit gespart. Wie gut sich dies in der Praxis umsetzen lässt ist dann die nächste Frage.
Baud dauert es dann eben 1000 Sekunden um 1 Nutzbit zu übertragen, d.h. etwa zwei Stunden für ein Byte. Das 434MHz Sender/Empfänger-Pärchen von Conrad wird mit "bis zu 30m" angegeben. Könnte ich damit dann also z.B. einen Funkthermometer bauen, der bis zu 3km weit weg ist und mir alle 2h seine aktuelle
-
Thread
LSB <----> MSB tauschen in c
ist es vermutlich optimal, die beiden Nibbles des Byte über ne 16ner Tabelle zu spiegeln und dann die Hälften mit 'swap' zu tauschen. Cheers Detlef
|= (byte_1 & 0x20); byte_2 |= (temp >> 3); temp |= (byte_1 & 0x10); byte_2 |= (temp >> 1); temp |= (byte_1 & 0x08); byte_2 |= (temp << 1); temp |= (byte_1 &
-
Thread
8Bit -DAC Für 2 sinusförmige Frequenzen Tabelle berechnen
erzeugen kann, geht es an die Details. Ich muß ja nun 2 Tabellen entwerfen, in denen ich jeweils die Bytes für die Ansteuerung des DAC ablege. Ich zerlege also meinen Sinus in kleine "delta" t. Für jedes "delta" t ist nun der zugehörige y Wert auszurechnen, wobei Zeiger senkrecht nach oben =1 (volle Ausgangsspannung Vmax). Zeiger waagerecht nach unten =0 (Ausgangspannung =0V). Auf die Bytes übertragen bedeutet =1, dann 11111111b und =0 dann 00000000b . Das war ja einfach. Jetzt muß ich die Zwischenwerte berechnene. Annahme: Bei t = 0,04ms beträgt der y-Wert vom Sinus 0,36 Bei einem
-
Thread
LCD am mega8 will nicht ganz
µC entspricht Bit 4 (oder Bit 7) am Display? Das kann ich fast nicht glauben, da mann dann jedes Byte in sich spiegeln muesste, bevor man es ausgibt.
-
Thread
Datenleitungen
...so, oder einfach das datenwort umdrehen per shift oder sonstwie. also quasi spiegeln.
gezielt jeden einzelnen Pin eines Ports steuern, es ist nur etwas aufwändiger als einfach nur ein Byte an hintereinanderliegende Pins auszugeben. bye Frank
-
Thread
The Siemens S65 132x176, 65536 color display with AVR
# '###################################################### Sub S65_line(byval Lx1 As Byte , Byval Ly1 As Byte , Byval Lx2 As Byte , Byval Ly2 As Byte , Byval Color As Word) Local M As Byte , M1 As Single , M2 As Single Local Yg As Byte , Cv As Single , Bn As Integer Local R As Byte ,
################################################################## Sub S65_print(byval Lx As Byte , Byval Ly As Byte , Byval Bcol As Word , Byval Fcol As Word , Byval Lcd_text As String) Local Xpos As Byte Local Ypos As Byte Local Zaehler As Byte Local Laenge As Byte Local Zeichen As String
-
Thread
Displaysteuerung
MHz .equ WaitMS=1550 ;Wartezeit in µ-Sekunden Wait1550uS: ldi r24,low(WaitMS*AVRTakt/4) ;low-Byte der Wartezeit in r24 ldi r25,high(WaitMS*AVRTakt/4) ;high-Byte der Wartezeit in r25 WaituS: sbiw r24,1 ;Wartezeit (r25:r24) - 1 brne WaituS ;Wenn nicht 0 dann nochmal - 1 ret
dass ich meinen Code überdenken muss. Er ist durch die Hardware noch komplizierter, da ich einige Bytes erst spiegeln muss usw. Einen Fehler habe ich schon gefunden. Die Daten lagen in r18 und ich habe versucht die Taktleitung über r16 zu manipulieren. Der tipp mit dem undefinierten Zustand war
-
Thread
RC - Drohne zum selberbau !!! Luftbilder per Funk!! (Fake) Gesperrt
,in Schwarzweis bis zu 3 Bilder pro Sekunde zu übertragen. Ein Bild konnte ich so auf etwa 170 byte reduzieren.Im Empfänger wurde das Bild nochmal interpoliert auf die 5 fache Größe. Ich habe mal ein Beispielbild angefügt ,welches ich mit 3 Frames pro Sekunde aus der Luft "geschossen" habe. Natürlich
, wäre er mit 16kByte zu klein! (2 Bilder + XOR-Verarbeitung eines Bildes + andere genannten Daten. Und in Echtzeit wandeln und senden, trau ich ihm nicht zu... Aber was soll´s - Schluß für heute. Nen Schönen Abend allerseits
-
Thread
Frage zu "sections" im ext. memory
Auswahl und der Programmierer hat durch den Zugriff auf Addresse 0x1100 die Möglichkeit in einem Byte die zwei auszuwählenden 32Kb SRAM Bereiche für die zwei internen Bänke vorzugeben. Somit kann man 2^4 = 16 * 32Kb = 512Kb des externen SRAM's ganz individuell in jeweils 2*32Kb des XMEM's einblenden
mem_dump((void *)0x8000, (size_t) 0xFF); [..] ...nur 0xFF bytes, weil sonst die Ausgabe auf der UART ein Wenig zuuuu lang würde :) Ich spiele aber grad auch noch ein wenig rum.
-
Thread
externer serieller EEPROM/C
Das 2404 hat doch nur 512 Byte, richtig? Ich benutze zur Zeit ein EEPROM mit 10.000.000 Schreib- Löschzyklen. Wenn du so ein Teil nimmst, die Zugriffe mitprotokollierst, müstest du fertig sein. Der Typ heißt 24LC65 von Mikrochip.
12 Produktionslinien, die du überwachen willst. Also, angenommen 12 x unsigned long, entspricht 48 Byte. Nach 100 Tagen wechselst du auf den nächsten 48'er Block. So bekommst du in den High-Endurance Block 10 x 48 Byte, also 10 x 115 Tage. Danach stehen dir noch 7,5KByte mit 1.000.000 Schreib- Löschzyklen
-
Thread
Binäre Zahl drehen
Also 7->0 6->1 usw. Am schnellsten geht das mit einer Look-Up-Tabelle. Das kostet allerdings 256 Byte Flash. Ansonsten hat hier im Forum mal jemand einen passenden Code gepostet. Einfach mal nach Bit und spiegeln suchen. Matthias
Befehle*, um zwei Nibbles zu vertauschen. Damit kann man die Größe der Lookup-Table deutlich (auf 16 Bytes) reduzieren. Also: 7654 3210 Lookuptable auf untere vier Bit anwenden 7654 0123 Nibbles tauschen 0123 7654 Lookup-Table auf untere vier Bit anwenden 0123 4567 Das sollte
-
Thread
DMX Dimmerpack bauen
'Sla register Uart_temp1 (R18) op in S-Ram variabele Dmx_count_temp STS {Dmx_byte} , Uart_byte 'Sla register Uart_byte (R17) op in S-Ram variabele Dmx_byte RJMP Asm_exit 'Relatieve sprong naar Asm_exit (einde verhaal) Asm_loop1: STS {Dmx_byte} , Uart_byte 'Sla Register Uart_byte (R17) op in S-Ram variabele Dmx_byte Asm_exit: $end Asm [/code] fehlermeldung: beim compilieren:
-
Thread
Wie drehe ich eine Bitreihenfolge um??
Spiegeln
spiegelnden Daten, mit bits gibt man die Anzahl der Bits die gespiegelt werden. Will man nur ein Byte spiegeln nimmt man "bit_swap(x, 8)". Man kann aber auch nur zum Beispiel 5 Bits spiegeln lassen oder 13, ganz egal...
-
Thread
alle Beiträge zum Downloaden?
3.33 mirror complete in 38 minutes 29 seconds : 9058 links scanned, 8931 files written (306701603 bytes overall) [207500580 bytes received at 89865 bytes/sec], 141225745 bytes transfered using HTTP compression in 7490 files, ratio 27%, 1.1 requests per connection (82 errors, 16 warnings, 0 messages)
kleiner tipp neben sessionids zB. " Achja? Und wo soll das bitteschön einen Downloadmanager vom Spiegeln der Seite abhalten? Dann lasse ich mir halt vor dem Download einer Seite einen neuen Cookie verpassen. Ebenso wie die Session. Informier Dich besser mal über die Technik, bevor Du so einen Unsinn
-
Thread
wie lange hält der interne eeprom?
nach App kann das die EE-Standzeit vervielfachen. Ingenieur-Lösung: Die EE-Variablen x-fach spiegeln. Alle 100.000-mal oder alternativ immer dann, wenn sich EEprom-Schreibfehler ergeben, auf die nächste Spiegelseite umschalten. Vertriebs-Lösung: Wo ist das Problem, nach 2 Jahren ist die Garantie
Hi soein Problem hatte ich auch schon mal. Wenn Du nur immer wenige Bytes schreiben willst, lege sia dann doch immer in eine andere Zelle. Du must Dir dann nur was einfallen lassen, das eine Suchroutine, die nach dem Einschalten läuft, die zuletzt beschriebene Zelle findet
-
Thread
BASCOM: große Zahlen über alle 4 Zeilen eines 4-Zeiligen L
Aber trotzdem vielen Dank und ich werde noch nicht aufgeben. Übrigens in Basic könnte ich ein Byte schon spiegeln. Das Beispiel im Anhang mfg Sepp
(x as byte) local x1 as byte: x1 = x + 1 !!!Interessante Zeile!!! local x2 as byte: x2 = x + 1 !!!Interessante Zeile!!! local y1 as byte: y1 = y + 1 local y2 as byte: y2 = y + 1 local y3 as
-
Thread
Nokia 6100 Ansteuerung in C
hi, soweit ich gesehen habe, wird nach jedem gesendetetn byte das chipselect wieder aufgehoben und vor dem nächsten byte senden wieder gesetzt. kann man den CS nicht halten solange man mehrere bytes sendet? ich hab das datenblatt nicht genau anschaut, aber ist
Angenommen eine Linien Zeichen Routine. Deren innerste Loop benötigt zb. 22 MCU Takte um das nächste Byte fürs SPI zu berechnen. 1 Byte versenden dauert 6 Takte, dann 22 Takte nächstes Byte berechnen macht ca. 28 MCU Takte. In dieser Zeit arbeitet das SPI aber seine 32 Takte im Hintergrund ab und defacto
-
Thread
CRC-16 Prüfsumme (serielle Übertragung)
>2 byte CRC Checksum</returns> public static byte[] CRC16S ( byte[] Data ) { ushort Polynom = 0xA001; ushort Register = 0xFFFF; ushort temp = 0x00; // loop through the entire array of bytes
(bit shift loop) } // end of outer for loop (data loop) // now we have got our overall 2-byte CRC "Checksum" number return new byte[2] { (byte) ( Register / 256 ), (byte) ( Register % 256 ) }; } // end of CRC16S Method
-
Thread
Zahlenausgabe
Hi Leutz, bin mal so frei und poste den Link mit meinem 180Byte / 4Byte printf hier ;-) http://www.mikrocontroller.net/topic/55271#427189 Peter war so nett und hat mich drauf hingewiesen. Ein paar stellen sind böse (zeigervergawaltigung), dafür ists klein
MAX_NUM_DEC reinschreiben kann, sondern eine Stellenzahl als Ziffer angeben kann. --- zu string spiegeln: ein paar divisionen sind nicht weiter wild. Ich möchte keine 12Bytes ausgeben, um eine 4G-Zahl incl. '\0' als string zu speichern. In dem Fall wärs ja einfach, in jedem durchlauf %10 und /10, das
-
Thread
CRC16 - Berechnung
hi, die beiden crc16 bytes sollten anfangs 0ffh sein. ed
rcswww.urz.tu-dresden.de/~sr21/crc.html bei meinen problem mußte ich die eingangsbytes und die end-crc spiegeln, nur dann hats gestimmt.
-
Thread
Bits elegant spiegeln, wie?
Hallo, Ein Byte negiert man, in dem man es Exclusiv-Oder mit FF (hex) verknüpft !!! Als Anfänger darf man noch solche schlechten Lösungen wie eure posten ...!
Leider die Frage nicht genau gelesen! Es wurde nach _spiegeln_ nicht negieren gefragt.