aus der Tabelle des Programmteils holt und dort hinspringt. Also Quasi so: Boot-ISR() { final-adr=(0x4000+32); jump final-adr; } Ich weiß, das geht so in C nicht. Aber wie kann ich sowas in C programmieren? Kann mir da jemand weiterhelfen? Danke...
Linkerscript zwei Speicherbereiche festlegen. z.B. Bootloader: 0 bis 0xfff Anwenderprogramm: 0x1000 bis 32k Bootloader: /* Memory Definitions */ MEMORY { ROM (rx) : ORIGIN = 0x00000000, 0x00000FFF RAM (rw) : ORIGIN = 0x40000000, LENGTH = 8k } Anwenderprogramm: * Memory Definitions
für einen CAN BUS Teilnehmer geätzt hat? Platine: AVR Baustein z.B. ATMEGA8 oder ATMEGA8535 + SJA1000(CAN CONTROLLER) Da ich mit CodeVisionAVR programmiere wäre es super, wenn ich auf dieser Platine einen von den oben genannten AVR Bausteine verwenden könnte + SJA1000. Gruß
und kann direkt ueber den usb-port programmiert werden. Direkt hat er kein CAN, da haengt ein sja1000 am Adr/Data Bus ... Irgendwo hab ich für das Parallel-Port Dongle eine Software unter DOS, da ich die Windows-Treiber nicht rausgeben darf. Die DOS-Software ist zwar nicht Interruptfaehig, aber
CD-Qualität ist nicht 100% korrekt, man verwendete schon Kompression. Ich hatte Ende 90er einen Receiver mit ADR (Astra Digital Radio) und speichertechnisch kamen dann ja schon die CD-Brenner. Ich war fasziniert von der Möglichkeit, vom ADR über SPDIF-Kabel rein digital Radiosendungen am PC mitschneiden zu können
1 was könnte die Ursache ein 2 im .eep existiert kein Wert x28. In welchem File finde ich die Adr. x16D mit welchem Offset dann ? (.elf, .hex, oder ... und an welcher Adr. ?) Im .elf steht an Adr. 3B61 = 39f4+16D jedenfalls x28 ...
Ich habe deshalb mal einen I²C-Scanner gebastelt: [code] izs: SetPin gp20,gp21,i2c I2C open 100,1000 For adr = &H00 To &Hff I2C read adr,0,1,reg If MM.I2C = 0 Then Print "Adresse: "Hex$(adr)" = "Bin$(adr)" Wert: "Hex$(reg)" = "Bin$(reg) EndIf Next adr I2C close [/code] Der LM73 hat
63 Schaltzeiten passt nicht wirklich zusammen ;-) Auf dem ausgelagertem Eeprom könnten ja bis zu 1000 Schaltzeiten gespeichert sein, aber man kann es auch noch anders nutzen. Mir schwebte dann etwas wie in http://www.mikrocontroller.net/articles/Soft-PWM vor. Also eine Liste für die 70 Schaltausgänge
nur einmal vorkommen haben.Dafür reicht ein Bitfeld. Innerhalb einer Minute kann man sicher aus 1000 Einträgen, den nächsten Eintrag für den/die gerade abgearbeiteten Schaltka nal/äle finden. Damit müsste die CPU auch länger schlafen zu legen sein können. Die braucht ja jede Sekunde nur einmal die
var> Beispiel : RND a --------------------------------------------------------------------- PEEK d=(adr) Auslesen von einem 32bit-Wert [d] aus Adresse [adr] vom Basic-RAM (adr=0 bis 0x7FFF) --------------------------------------------------------------------- Syntax : PEEK<var>=(<exp>) Beispiel : PEEK a=(1000) Beispiel : PEEK a=(b) --------------------------------------------------------------------- POKE adr,d Schreiben von einem 32bit-Wert [d] in Adress [adr] vom Basic-RAM (adr=0 bis 0x7FFF) (d=-99999
1M sram nimmt 231/288 (81%) Macrocells > > Die 3 pins die dafür benutzt werden : > NET "sram_adr<17>" LOC = "P124"; > NET "sram_adr<18>" LOC = "P125"; > NET "sram_adr<19>" LOC = "P39"; Was sagt die clk Frequenz dazu? Immer noch 100MHz
den LPT draufstecken falls gewünscht. Was SRAM angeht, ich persönlich würde die NET "sram_adr<17>" LOC = "P124"; NET "sram_adr<18>" LOC = "P125"; NET "sram_adr<19>" LOC = "P39"; auch geroutet haben, mit lötpads damit man die SRAM-size wählen kann.
man schrieb im Beitrag #3164530: > Heute macht man sowas mit einem Raspberry Model B. Wäre mir 1000-fach oversized, aber eine MC-Lösung ist schon der sinnvolle Weg.
Adresslatch A00-A15 auf SBI ALH ;Adresslatch A16-A19 auf SBI MWC LDS temp1, Adr0 ;Schreibadresse -> Arbeitsregister LDS temp2, Adr1 LDS temp3, Adr2 OUT PortC,temp3 ;Ausgabe A16-19 auf PortC CBI ALH ;Adresslatch verriegeln
---------------------------------------- -- hier wird Adressdekodierung & Zugriff für BWS gemacht 1000H..17FFH CPU_Zugriff <= '1' when ADR(15 downto 12) =x"1" -- Adresse 1xxxH and ADR(11)='0' -- Adresse 1000H..17FFH and MREQ='0' -- Speicherzugriff and BWS_aus = '0' -- wenn BWS aktiv sein darf else '0
zur Adresse anliegt bekomme ich nach ca. 1000ns Simulationszeit folgende Warnung auftritt "# ** Warning: CONV_INTEGER: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, and it has been converted to 0." einen Takt später bricht die Simulation
sinnvolles drin? [pre] There is an 'U'|'X'|'W'|'Z'|'-' ... [/pre] Das liegt daran, daß /rom_adr_i/ nicht interpretierbar ist. Duke
avrasm] - man läßt den Assembler die Daten anlegen und verwalten, nicht manuell! - die Vorsilbe adr_ ist Unsinn, denn die Labels sind immer Adressen - Wenn man viele Variablen mit gleichem Namen und ner Nummer am Ende hat, schreit das nach einem Array [avrasm] ; SRAM Daten .dseg
und anscheinend möchte er die font nicht an stelle 0 schreiben, > schreibe ich sie an EVE_RAM_G + 1000 (also 1000) klappts. Na das wird ja in dem EVE Asset Builder eingestellt beim Konvertieren, Default-Wert ist 1000, warum auch immer. > Habe nicht mitbekommen, dass es mittlerweile die 2.1 gibt
is gone" so, what can I do, if I have to use old FT800? When i use yours example: #define IMG1_ADR 0 while(ft800_busy() == 1); ft800_cmd_loadimage(IMG1_ADR, FT_OPT_NODL, jpg4, 2640); ft800_cmd_execute(); //then in loop: ft800_cmd_dl(DL_BEGIN | FT_BITMAPS); ft800_cmd_dl(BITMAP_SOURCE(IMG1_ADR
; pix_pos = y0 % 8; data = data << pix_pos; uint8_t y_dots; uint16_t buf_adr; // Grafic Buffer-Adresse berechnen buf_adr=((x0+1)*((y0/8)+1)); // alte Y-Dots lesen y_dots=lcd_buffer[buf_adr]; // alte und neue Y-Dot verknüpfen und speichern
LCD_Plot_Line(x2,y2,x1,y1); // else draw form down to up // next sample_adr. xplot++; wave_adr = wave_adr + adr_offset; x2=x1;y2=y1; } [/c] Die Buffergröße für die Zeichenfunktion konnte ich stark reduzieren. Jetzt werden für das zeichnen
gewundert. Im Prozessor wird wohl so was ausgeführt: [c]uint32_t kmstand = 1; for (uint16_t adr = 0x1F0; adr < 0x200; adr++){ kmstand += ((0xFFFF - read_93c66_word_von_adresse(adr))); } show_kmstand(kmstand << 1); // *2[/c] Aber ich denke das passt so. Vieleicht prüft Nick das ja und
deine Include-Datei kommt: ; Nur ein Beispiel für ein Unterprogramm .macro mactest1 ldi zh,high(adr) ldi zl,low(adr) lpm ret .endmacro In Deinen Quellcode kommt dann folgende Konstruktion: test1: mactest1 [...] rcall test1 Mit dem Macro-Aufruf mactest1 wird der Macrocode in das Programm
Softwareinterrupt ist wieder auch nur reine Ansichtssache. Ob ich nun einen INT21 aufrufe oder einen CALL 1000h und die entsprechende Routine an 1000h linke, ist vollkommen gleich. Der einzige Unterschied, unter DOS kann ich einen Interrupt verbiegen, aber nur, weil der Kodespeicher im RAM ist. Aber bei
NoCmd cmp.b CmdTbl(R5),R4 jz FndCmd inc R5 jmp ParCmd FndCmd rla R5 mov CmdAdr(ACC),PC NoCmd bla bla CmdTbl DB 08h,0dh,1bh,'A','C','+','-','0',0 EVEN CmdAdr DW CmdBS,CmdCR,CmdESC,LtrA,LtrC,CmdPl,CmdMi,Cmd0 EVEN CmdBS bla bla CmdCR bla bla
a, r7 movc a, @a+dptr ret ;r7 = high, a = low byte table: dw 1000 dw 2000 usw. [/AVRASM] Peter
Dezimaldarstellung mit Punkt/Komma liest und ins binäre übersetzt. Der Input könnte so aussehen: ADR: 16384 DAT: T"Hallo",Z"1000.0" "T" wäre ein Text und müsste als ASCII H.a.l.l.o ins RAM. "Z" wäre eine Zahl und müsste gewandelt und als 16 Bitwert gespeichert werden. Wenn "ADR" kommt, muss
Programm schalte ich jeweils 1 Ausgang des PCF. [c] void led_blinken1() { lauf1++; if(lauf1==1000) { PORTA &= ~(1<<PA0); // Schaltet Pin i2c_start(adr2_w); // Schreibbefehl für Device 1 i2c_write(0xfe); // Alle i2c_stop(); } else { if(lauf1==2099) { PORTA |= (1<<PA0); // Schaltet Pin i2c_start(adr2_w); // Schreibbefehl für Device 1 i2c_write(0xff); // Alle i2c_stop(); lauf1=0; } } } [/c] mit 0xfe schalte ich z.B. Ausgang 1 ein. Mit 0xff schalte ich
im Beitrag #5650705: > Keithley 237 oder Fluke 332/335/5440B? Der 5440B kann doch nur 25mA bei 1000V.
Wenn es von bester Qualität sein darf, dann empfehle ich ein Gerät von Kikusui. Das PAT1000-8T liefert 1000V bei 8A. Allerdings ist es nicht ganz billig: Um die 25k Euro solltest Du dafür schon einplanen :)