-
Thread
Wittig(welec) DSO W20xxA Open Source Firmware
Kommentar bei Ch3 bezüglich der Adresse falsch! Für die Ch-Switches ergeben sich folgende Adressen: Ch1 = adr 7, Ch2 = adr 5, Ch3 = adr 1, Ch4 = adr 3, ext.Trig = adr 2, DAC1+2 = adr 6, DAC 3+4 = adr 4. Diese Belegung sieht man auch im Stromlaufplan IC U25( 74HC238). Die dort unbezeichneten Ausgänge Y0-Y7 entsprechen
bauen. > Die unistd darf bei mir nur unter Linux eingebunden werden. > Ersetzen von (int) usleep(1000) durch (void) Sleep(1000) sleep(1000) wuerde 1000 Sekunden warten unter allen mir bekannten libc... (Ist abgesehen davon auch POSIX) > Ersetzen von snprintf() durch sprintf_s(). > Aus fopen
-
Thread
Multisim - PIC Schaltung arbeitet nicht! Gesperrt
*************************************************************************** wait movlw .1000 movwf loops wait1 movlw .110 movwf loops2 wait2 nop nop nop nop nop nop decfsz
Also die Schleife sollte jetzt so funktionieren. Dann nochmal was Grundlegendes: An Adr 0x04 im Programmspeicher liegt die Einsprungadr für die Interrupts. Jetzt stell Dir mal vor, du bekommst einen unsauberen Spannungspegel auf der Versorgungsleitung - vielleicht wegen HF, EMV oder einfach
-
Thread
Display mit Touchscreen bei Pollin?
100- 1000 Hz
alldatasheet.com/datasheet-pdf/view/37306/SAMSUNG/KM62256DLG-7.html die drei MSB sind pin 2, 26, 1 (ADR12, ADR13, ADR14)
-
Thread
RAM-Bankswitching - wie am geschicktesten mit GCC auf AVR?
unsigned char b[4]; } CONVERTDW; void xmem_set(uint32_t address, uint8_t byte){ CONVERTDW adr; adr.dw=address; PORTF=(PORTF&0x0F)|(adr.b[3]<<4); PORTC=adr.b[2]; //(oder wo auch immer A8-15 liegen) uint8_t *zeiger = (uint8_t *) adr.b[0]; *zeiger = byte; } [/c] Das dürfte nochmal
korrigiert. So sollte es besser sein: [c] void xmem_set(uint32_t address, uint8_t byte){ CONVERTDW adr; adr.dw=address; PORTF=(PORTF&0x0F)|(adr.b[2]<<4); PORTC=adr.b[1]; //(oder wo auch immer A8-15 liegen) uint8_t *zeiger = (uint8_t *) adr.b[0]; *zeiger = byte; } [/c] > Ich bin übrigens
-
Thread
MAX 7219 AVR Programm
********************************** ; *** Der Baustein Max7219 hat insgesamt 14 Register: ; *** Adr.: 00: NOP (No Operation) ; *** 01-08: Digits 1-8 ; *** 09: Dekodier-Modus (00h = 00000000 = keine Dekodierung ; *** 01h = 00000001 = Dekodierung
i<=9; i++) { write_to_display(i); //oder wie die Funktion zur ausgabe heißt _delay_ms(1000); //1 Sekunde dazwischen warten, sonst siehst du vom //Zählen nichts } } [/c] Beachte dass du die "delay.h" einbinden musst. Steht im AVR-GCC wie delay funktioniert.
-
Thread
AtxMEga EBI benutzen.
#include "ebi_driver.h" ... //memory usage: 0x0000 - 0x0FFF internal I/O stuff // 0x1000 - 0x1FFF EEPROM // 0x2000 - 0x3FFF internal SRAM // **GAP** // 0x6000 - 0x6FFF FPGA, CS0 area #define MEM_ADDR 0x6000 #define MEM(addr) ((uint8_t *) MEM_ADDR)[addr] ...
(void*)&MEM(0), EBI_CS_SRWS_7CLK_gc); [/c] Gewünscht: 3 Port Mode, Mux Adr/Daten (AD0..AD7) auf Port J, Port H für Steuersignale, Port K für Adr A8..A15 das Ganze bei 0x6000 mit 4k Boundary und 8Bit Daten. Stichwort SRAM im Datenblatt. Ich habe fix an der Adresse 0x6000
-
Thread
AVR - Software retten
Ich weiß ja nich ob dus siehst und ob das gewollt ist, aber ADR ist blau hinterlegt -> KEINE Variable.. D.h. ADR ist ein Bascom Befehl. Somit kann man da nix mit ADR as Byte definieren.. nenn das mal um.. Was ADR is findest du raus wenn du auf ADR und F1 klickst
Wenn man *Adr* in *adr1* umbenennt, wird das File ohne Fehler compiliert.
-
Thread
GNU GCC und ISR auf Cortex-M3
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
-
Thread
CMOS Sensor MT9P031
MT9P031 dann sendet wäre virtuell durch die Blankpixel deutlich länger (2592 echte Pixel und einige 1000er Blankpinxel). Dann hätte der AVR eine Chance durch einen Interrupt pro fertiger Zeile diese dann aus dem FPGA zu laden. Wie schnell (MByte/sekunde) ist denn Deine AVR-Schnittstelle?
Hi Julius, das wuerde ich nicht machen, da du fuer die EPs die FIFO_ADR-Pins umschalten musst, dabei gehen dir wieder wertvolle Zyklen verloren. Du koenntest eher Glueck haben, dass eine komplette Zeile trotzdem rausgeht, weil beim Quad-Buffering waehrend dem Fuellen schon
-
Thread
Motorola Application Notes - woher ?
externem Adress/Datenbus. Ansonsten ist er ident mit dem G2, bis auf lediglich 16 I/O wg. externem Adr/Datenbus. Ich habe noch andere Mot-Buecher zur 6805/146805 Family sowie die komplette Entwicklungsumbegung, Assembler, Simulator, Disassembler. Wenn Du etwas praeziser sagst was genau Du brauchst
dokumentiert. Der Prozessor selbst findet sich im 8-Bit Microprocessors Data Manual, ein etwas ueber 1000 Seiten starkes Buechlein. Und vor Freescale und Internet gab es auch schon mailing lists und newsgroups bzw.die MOT-Usergroup, per Modem. Google kennt natuerlich kaum Einzeltypen, mit 6805 dagegen
-
Thread
DCF-Uhr, Sonnenstand, TWI-Port, Alarmfunktion für m8 in C
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
-
Thread
DCF77-TWI(I2C)-Slave
genug ist Anmerkung: das halte ich für ein Gerücht der Konkurrenz ... in 50ms werden (4.000.000 / 1000) * 50 = 200.000 Befehle abgearbeitet! > * TWI-Start (lesen) > * 8x TWI-Lesen mit Ack (Datenreihenfolge ss, mm, hh, > dd, mt, yy, wd, mez) > * 1x TWI-Lesen mit NAck (es kommt
ist > Anmerkung: das halte ich für ein Gerücht der Konkurrenz ... > in 50ms werden (4.000.000 / 1000) * 50 = 200.000 Befehle abgearbeitet! > naja, die Rechnung stimmt auch nicht ganz, der Tiny arbeitet mit 1MHz... Der angegebene Pausenwert war nach "Gefühl"... Wenn man es genau berechnen möchte,
-
Thread
Speichermapping 74138
> ADDR0 ist dann von 0000h-0FFFh Gaaaanz genua ;-)) ADR1 von 1000-1FFF usw. bis ADR15 von F000-FFFF ADR16 bis 23 sind dann noch mit niederwertigeren Adressleitungen verknüpft und haben entsprechend kleineren Umfang.
A11 bewirkt, dass der jeweilige ADR-Ausgang nur alle 100h aktiv wird. ADR16 0111 XXXX 1111 1000 70F8, 16 mal alle 100h bis 7FF8 für ADR7 low und nochmal für ADR8 low ADR16 1000 XXXX 1111 1000 80F8, 16
-
Thread
RS485 Bus aufbauen
Slave-Transmitter zurück an den Master-Receiver. Leitung: 4-adrige Telefonleitung, Leitungslängen über 1000m und 64kBaud. Protokoll: 2 byte + Daten = Adr+Ctrl(1..32) + N(0...255) + N-Bytes Sollte im Haus bei den kürzeren Leitungslängen noch deutlich schneller gehen, ausserdem sind Repeater für mehr als
-
Thread
M16C timerA0 mit Interrupt
mein Code - allerdings für A2: ta2mr = 0x80; // use divider f/32 i = TIMER_TICK_uS(1000); //get interrupt each ms ta2 = i; ta2ic = TIMER_TA2_PRIO; // Interrupt priority cpsrf = 0; ta2s = 1; // Start Timer Ansonsten sieht dein Code richtig aus. Einzige Möglichkeiten
der Korrektur auf Vector 20. (danke nochmal) .section vector,ROMDATA .org __VECTOR_ADR__ .if 0 .lword dummy_int ; vector 0 BRK .lword dummy_int ; vector 1 .lword dummy_int ; vector 2 .. .. .. .endif Was sollte dieses .if 0 da?
-
Thread
Wittig W2000 mit Sourceforge.net
erhalten werden. Dazu habe ich's schon zu oft versucht. Du kannst auch gern noch eine andere Email-Adr. von Hr. Wittig über mich bekommen. Gruß, Bruno
Gerät mit der Softwareversion 1.4 ausgestattet. Warum schreibst Du Dir den Kram nicht zu Hause 1000 mal auf die Tapete und läßt uns hier damit in Ruhe.
-
Thread
SJA1000 im Self-Test-Modus
Hallo, zunächst einmal ein Lob an das Forum. Sehr informativ. Ich habe ein Problem mit dem SJA1000. Meine Konfiguration entspricht der Standardbeschaltung mit Optos und einem 82C250 als Bustreiber. Derzeit habe ich nur diesen einen Knoten, d. h. mir bleibt nur der Self-Test-Modus zum Testen. Aber
Daten und die Daten selbst (inkl. ID) und schon klappts nur solange, wie die RXStartAddr den genannten Adr-Teil zeigt. Ich sollte auch noch erwähnen, dass das Ding bei "korrekter" RXStartAddr unabhängig von den 8 Byte immer zum Erfolg führt. Erst wenn dann nach einem BufferRelease die neue RXStartAddr
-
Thread
AVR für wenig Geld im LAN
Gratulation Heiko: über 1000 Posts! Gruß, Alex
denn her? und Millisekunden in Minuten umrechnen sollte man können ;-) 1 Minute sind 60s 1 s sind 1000 ms also 1000 mal 60
-
Thread
I2C Ansteuerung ATMega128
#define SIG_2WIRE_SERIAL _VECTOR(34) // Interrupt Vektor für TWI void init_twi_slave (uint8_t adr); void delay_ms(unsigned int period); extern const prog_uint8_t Font1[], Font2[]; uint8_t data=0; uint8_t contr=0; int main(void) { LCD_Init(); delay_ms(1000); init_twi_slave(SLAVE_ADRESSE); Orientation = Landscape; LCD_Cls(yellow); delay_ms(1000); while(1) { if(data != 0) { switch(data) { case '1': ... break; case '2': ...
-
Thread
GLCD mit T6963 Read-Data Problem
**************************************************/ void Graphic(void) { uns8 Innen, Aussen, AdrL, AdrH, Zaehler; uns16 Adresse, Hilfs; Adresse = 0x0081; Zaehler = 0; for(Aussen = 1; Aussen < 33; Aussen++) { /*16-Bit Adresse in zwei 8-Bit zerlegen*/ Hilfs = Adresse & 0xFF00; AdrH = Hilfs >> 8; Hilfs = Adresse & 0x00FF; AdrL = Hilfs; /*Adress-Pointer setzen*/ WriteData(AdrL); WriteData(AdrH); WriteCommand(0x24); for(Innen = 1; Innen < 5; Innen++)
-
Thread
Daewoo-Fernbedienungscode / Interrupt lässt sich nicht ausschalten
/ Diese Berechnung geht nur bis 6,5535 MHz #define T10ms (F_CPU/100) #define T8msh (((F_CPU/1000)*8)+((F_CPU/10000)*Tolleranz)) #define T8msl (((F_CPU/1000)*8)-((F_CPU/10000)*Tolleranz)) #define T4msh (((F_CPU/1000)*4)+((F_CPU/10000)*Tolleranz)) #define T4msl (((F_CPU/1000)*4)-((F_CPU/
VergZeit > T045msl) & (VergZeit < T045msh)) // das erkannte Bit ist eine "0" { Adr_OPCode = (Adr_OPCode >> 1); } else if ((VergZeit > T145msl) & (VergZeit < T145msh)) // das erkannte Bit ist eine "1" { Adr_OPCode = (Adr_OPCode >> 1) | (1 << 15)
-
Thread
ic fälschungen im tieferen preissegment
Euro kann doch schon gut an den Billig Replica Dingern verdient werden. Hast du dir die Version ADR445A oder ADR445B geholt? Wenn da drin ein 7805 drin steckt haben die recht viel Gewinn an dir gemacht ;-) Aber du kannst ihn ja mal austesten, vielleicht hat er ja gute Werte.
Hier mal die Variante ADR440BRZ (vor ca. sechs Monaten über Farnell bezogen), die allerdings genauso aussieht.
-
Thread
Was hört ihr für Musik ?
/watch?v=y2EprqNB7qI https://m.youtube.com/watch?v=GiCwBAYHIiI https://m.youtube.com/watch?v=ADR9Nt8yZ7o
https://laut.fm/1000oldies oder direkt: http://stream.laut.fm/1000oldies
-
Thread
VB2005-DLL einbinden
einfacher cod '#################################### Dim karten_adresse As Long Dim adr As Long Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed CloseDevice() End Sub Private Sub
System.Object, ByVal e As System.EventArgs) Handles MyBase.Load karten_adresse = 0 adr = OpenDevice(karten_adresse) TextBox1.Text = "Kart ADR " & adr End Sub Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
-
Thread
AVR TWI Master und Slave Funtionen in C
TWIM_ReadAck (); Data[7] = TWIM_ReadNack (); TWIM_Stop (); //Delay_ms (1000); } if (!PC_Com(4,Data[0],Data[7])) { } break; [/c] Hat jemand ne ahnung woran das liegen kann?
(100000)) { uart_puts("TWIM_Init..\n"); PORTD |= (1<<PD7); } if(TWIM_Start(adres,TWIM_WRITE)) { uart_puts("start\n"); if(TWIM_Write('*')) { PORTC |= (1<<PC5); } } TWIM_Stop(); _delay_ms(1000); if(TWIM_Start(adres,TWIM_READ))