-
Thread
Projekt : GPS Tracker
bitte jemand überprüfen der etwas ahnung davon hat? - ATmega mouser.com (556-ATMEGA644P-20AU) - BSS123 Reichelt (Artikel-Nr.: BSS 123 SMD) - LM75AD Reichelt (Artikel-Nr.: LM 75 SMD) - Max 1811 Recihelt (Artikel-Nr.: MAX 1811 ESA) - 1 Schalter Mouser.com (SSSS811101) - MIC 2920A-3.3WS mouser.com
13.51€ Hinzu kommen die Kosten für: * BSS138 FET (wie gesagt, leider nicht bei csd erhältlich) = ein paar Cent * GPS-Modul = je nachdem ab ca. 20€ aufwärts (oder mal bei eBay schauen) * Akku = z.B. ein Handyakku, ca. 10€ aufwärts bei eBay
-
Thread
Bekomme Projekt nicht kompiliert: No Rule...
quotes. EXTRAINCDIRS = f:/Programme/AVRlib # Compiler flag to set the C Standard level. # c89 = "ANSI" C # gnu89 = c89 plus GCC extensions # c99 = ISO C99 standard (not yet fully implemented) # gnu99 = c99 plus GCC extensions CSTANDARD = -std=gnu99 # Place -D or -U options
# 64 KB of external RAM, starting after internal RAM (ATmega128!), # used for variables (.data/.bss) and heap (malloc()). #EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff # 64 KB of external RAM, starting after internal RAM (ATmega128!), # only used for heap (malloc
-
Thread
Amtel Evaluationboard V2.01 - Programmieren mit WINAVR
, enclose it in quotes. EXTRAINCDIRS = # Compiler flag to set the C Standard level. # c89 = "ANSI" C # gnu89 = c89 plus GCC extensions # c99 = ISO C99 standard (not yet fully implemented) # gnu99 = c99 plus GCC extensions CSTANDARD = -std=gnu99 # Place -D or -U options
COFFCONVERT += --change-section-address .data-0x800000 COFFCONVERT += --change-section-address .bss-0x800000 COFFCONVERT += --change-section-address .noinit-0x800000 COFFCONVERT += --change-section-address .eeprom-0x810000 coff: $(TARGET).elf @echo @echo $(MSG_COFF) $(TARGET).cof
-
Thread
(Über)lebensraum von Variablen...
da es historischen Code gibt, der sich darauf verläßt. Meiner Erinnerung nach ist das aber seit C89 nicht mehr vom Standard abgedeckt. (Als unangenehmen Nebeneffekt kann man die Größe des .bss nicht durch Aufsummieren der .bss der einzelnen .o-Dateien ermitteln, sondern erst nach dem Linken am
-
Thread
Hex.file erstellen
= $(CAT_LIB_PATH) $(CAT_LIB_PATH_OTHERS) # Compiler flag to set the C Standard level. # c89 = "ANSI" C # gnu89 = c89 plus GCC extensions # c99 = ISO C99 standard (not yet fully implemented) # gnu99 = c99 plus GCC extensions CSTANDARD = -std=gnu99 # Place -D or -U options
COFFCONVERT += --change-section-address .data-0x800000 COFFCONVERT += --change-section-address .bss-0x800000 COFFCONVERT += --change-section-address .noinit-0x800000 COFFCONVERT += --change-section-address .eeprom-0x810000 coff: $(TARGET).elf @echo @echo $(MSG_COFF) $(TARGET).cof
-
Thread
UART: Daten zum AVR senden
quotes. EXTRAINCDIRS = f:/Programme/AVRlib # Compiler flag to set the C Standard level. # c89 = "ANSI" C # gnu89 = c89 plus GCC extensions # c99 = ISO C99 standard (not yet fully implemented) # gnu99 = c99 plus GCC extensions CSTANDARD = -std=gnu99 # Place -D or -U options
# 64 KB of external RAM, starting after internal RAM (ATmega128!), # used for variables (.data/.bss) and heap (malloc()). #EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff # 64 KB of external RAM, starting after internal RAM (ATmega128!), # only used for heap (malloc
-
Thread
Wärmezähler über optische M-Bus-Schnittstelle auslesen
1,0406ssSSssSSs@1000,Wärmenergie gesamt,MWh,W_total,3 1,0413ssSSssSSs@1000,Volumen gesamt,m³,V_total,3 1,042BssSSssSSs@1000,Strom aktuell,kW,P_curr,3 1,043BssSSssSSs@1,Durchfluss aktuell,l/h,F_curr,0 1,025BssSS@1,Temperatur Vorlauf,°C,T_flow,0 1,025FssSS@1,Temperatur Rücklauf,°C,T_return,0 1,0261ssSS@100,
1,0406ssSSssSSs@1000,Wärmenergie gesamt,MWh,W_total,3 1,0413ssSSssSSs@1000,Volumen gesamt,m³,V_total,3 1,042BssSSssSSs@1000,Strom aktuell,kW,P_curr,3 1,043BssSSssSSs@1000,Durchfluss aktuell,m³/h,F_curr,3 1,025BssSS@1,Temperatur Vorlauf,°C,T_flow,0 1,025FssSS@1,Temperatur Rücklauf,°C,T_return,0 1,0261ssSS@
-
Thread
Wechselspannung Nabendynamo begrenzen
Shuntregler für 1,8V aufbauen (AZ431) und ihn mit einem Verarmungs-FET als Stromquelle 2mA speisen, z.B. mit BSS139, der kann bis 250V ab, das sollte reichen.
für 1,8V aufbauen (AZ431) und ihn mit > einem Verarmungs-FET als Stromquelle 2mA speisen, z.B. mit BSS139, der > kann bis 250V ab, das sollte reichen. Ja stimmt. Wenn ich dabei bleiben möchte, wäre also ein größerer Widerstand zu PB2 hin oder dein Vorschlag besser. Danke. Axel S. schrieb im Beitrag
-
Thread
Linux und (immer noch) C
enthalten. atoi() ist nicht unsicher. Aber du kannst keine Fehleingaben erkennen. Dafür gibt es (seit C89 oder früher) strtol().
data 16 4202496 .rdata 224 4206592 .eh_frame 928 4210688 .bss 96 4214784 .idata 888 4218880 .CRT 24 4222976 .tls 32 4227072 C++ size -A out.exe out.exe : section size addr
-
Thread
flash-Fehler mit ATtiny2313, compile ok
12a: 3c 85 ldd r19, Y+12 ; 0x0c 12c: 8b 89 ldd r24, Y+19 ; 0x13 12e: 9c 89 ldd r25, Y+20 ; 0x14 130: 28 1b sub r18, r24 132: 39 0b sbc r19, r25 134: 3c 87
b8 01 movw r22, r16 228: e3 d0 rcall .+454 ; 0x3f0 22a: 89 85 ldd r24, Y+9 ; 0x09 22c: 82 30 cpi r24, 0x02 ; 2 22e: 38 f0 brcs .+14 ; 0x23e 230: 89 89 ldd r24, Y+17
-
Thread
neues WinAVR macht Probleme
funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=AVRTel21 -std=c89 -Wundef -MMD -MP -MF .dep/AVRTel21.elf.d AVRTel21 --output AVRTel21.elf -Wl,-Map=AVRTel21.map,--cref -lm AVRTel21: In function `__bad_interrupt': ../../../../../avr-libc-1.4.5/crt1/gcrt1.S:123:
funsigned-bitfields -fpack-struct -fshort-enums -Wall > -Wstrict-prototypes -Wa,-adhlns=AVRTel21 -std=c89 -Wundef -MMD -MP -MF > .dep/AVRTel21.elf.d AVRTel21 --output AVRTel21.elf > -Wl,-Map=AVRTel21.map,--cref -lm Wegen dem fehlenden MCU kommt diese Warnung: > In file included from AVRTel21.
-
Thread
µC-Relaissteuerung, Fehlersuche: Wie gehe ich vor?
Schaltung entfernt, über ein zweipoliges, ungeschirmtes Lautsprecherkabel verbunden, die Treiberstufe (BSS84, P-Kanal FET, mit Pull-Up an Gate) befindet sich auf der Schaltung (nicht beim Relais), am FET befindet sich eine Schutzdiode 1N4148 und am Relais selbst ist eine 1N400x (zwei Dioden deswegen, weil
Ach, wieder mal die wichtigen Sachen vergessen, sorry :) Ein AT89C51ED2, 8052-Kern. So, und jetzt gute Nacht. Ralf
-
Thread
Alternative BC327 und 337
denen kann man so ziemlich alles in dieser Anwendungsklasse machen. Gilt auch für 2N7000 MOSFET. BSS138 ist gut für Logic-Level Anwendungen. Gerhard
Hoffentlich gibt es die bastlerfreundlichen SOT23 und SOT89 noch eine Weile, und wenn nicht, dann wird man sich wohl anpassen müssen.
-
Thread
[Anfänger-Probleme] Wie assembliere ich Assemblercode bei WinAVR?
, enclose it in quotes. EXTRAINCDIRS = # Compiler flag to set the C Standard level. # c89 = "ANSI" C # gnu89 = c89 plus GCC extensions # c99 = ISO C99 standard (not yet fully implemented) # gnu99 = c99 plus GCC extensions CSTANDARD = -std=gnu99 # Place -D or -U options
COFFCONVERT += --change-section-address .data-0x800000 COFFCONVERT += --change-section-address .bss-0x800000 COFFCONVERT += --change-section-address .noinit-0x800000 COFFCONVERT += --change-section-address .eeprom-0x810000 coff: $(TARGET).elf @echo @echo $(MSG_COFF) $(TARGET).cof
-
Thread
AVR, xtern. SRAM initialisierung, xmem, makefile, .init funktionen
das laeuft soweit. meldung des compilers: [code] Data: 165 bytes (16.1% Full) (.data + .bss + .noinit) [/code] hier die variable aus einer header datei [c] #define DAT_BUFFER_SIZE 128 volatile unsigned char dat_buffer[DAT_BUFFER_SIZE]; [/c] Wenn ich nun aber DAT_BUFFER_SIZE soweit
legt .data und .bss auch noch ins externe RAM Schau mal, hier ist ne ganze Doktorarbeit übers Thema http://www.mikrocontroller.net/topic/47896#new Hat mir sehr geholfen, außerdem im AVR-libc-Manual das Kapitel
-
Thread
ELF File Offset für Sektionen
CONTENTS, READONLY, DEBUGGING 15 .debug_info 00035c10 00000000 00000000 0001e89f 2**0 CONTENTS, READONLY, DEBUGGING 16 .debug_abbrev 000079e7 00000000 00000000 000544af 2**0 CONTENTS, READONLY, DEBUGGING 17 .debug_line 0001dd3c 00000000
00000028 00000630 00 WA 00 000 3 .data [ 11] NOBITS 00000658 00001048 00 WA 00 000 3 .bss [ 12] NOBITS 000016a0 0000d960 00 WA 00 000 1 .heap [ 13] PROGBITS 00000000 00000030 01 00 000 1 .comment [ 14] PROGBITS 00000000 00001a08 00 00 000
-
Thread
bare metal m68k-elf.gcc.
exeptions. Copyright Motorola Inc. 1989 All Rights Reserved Fbug68 Monitor/Debugger Version 1.1 - 9/28/89 MOTOROLA> rd im ersten case in printreg() PC =$Address Error "im ersten case und in printreg()) sind debugging printfs von mir, der Adress Error ist das Problem, normalerweise sollte der
Platte. Deshalb bin ich auf einigeUnterscheide bei der Übersetzung gestoßen: Hier Datenbereiche im .bss segment: alt: COMMON 0x001fe000 0xa64 coldport.o 0x001fe000 sizechar 0x001fe004 condition 0x001fe010
-
Thread
Ram-Mangel ?
es so, dass keine globalen uninizalisierten Variablen verwendet werden dürfen da es bei TIOS kein BSS Segment gibt (was ich mir bei AVR auch nicht vorstellen kann). Kannst du deinen Code einmal mitschicken? niki
Ja, aber nur für die 68k Reihe, d.h. TI92+, TI92, TI92 II, TI89 Weiteres auf http://tigcc.ticalc.org niki
-
Thread
kann ni cht mit winavr kompilieren
, enclose it in quotes. EXTRAINCDIRS = # Compiler flag to set the C Standard level. # c89 = "ANSI" C # gnu89 = c89 plus GCC extensions # c99 = ISO C99 standard (not yet fully implemented) # gnu99 = c99 plus GCC extensions CSTANDARD = -std=gnu99 # Place -D or -U options
COFFCONVERT += --change-section-address .data-0x800000 COFFCONVERT += --change-section-address .bss-0x800000 COFFCONVERT += --change-section-address .noinit-0x800000 COFFCONVERT += --change-section-address .eeprom-0x810000 coff: $(TARGET).elf @echo @echo $(MSG_COFF) $(TARGET).cof
-
Thread
TIPP: Atxmega DFU-Bootloader auf eigenen "Boot-Pin" verbiegen (direkt im Hex-File)
dein Compiler nur max. 4k Code erzeugen kann, was vestehst du dann an der Meldung >Fatal Error[e89]: Too much object code produced (more than 0x1000 bytes) nicht? 0x1000 = 4096 Byte. MfG Spess
avr-size ../binaries/atxmega32a4u_104.hex ../binaries/atxmega128a4u_104.hex text data bss dec hex filename 0 3944 0 3944 f68 ../binaries/atxmega32a4u_104.hex 0 5588 0 5588 15d4 ../binaries/atxmega128a4u_104.hex [/code]
-
Thread
NXP verschenkt ARM-Chips
interrupts */ ldr r1, =VICSOFTINTCLR mov r2, #0xFFFFFFFF str r2, [r1] /* zero-out the bss */ ldr r3, =__bss_start__ ldr r4, =__bss_end__ bl zeromemory /* copy initialized data from ROM to RAM */ ldr r3, =__data_load_start__ ldr r4, =__data_start__ ldr r5, =__data_end
R0, [R1], #4 STRLO R0, [R2], #4 BLO LoopRel # Clear .bss section (Zero init) MOV R0, #0 LDR R1, =_bss_start LDR R2, =_bss_end LoopZI: CMP R1, R2 STRLO R0, [R1],
-
Thread
C und Assembler
seperated by a space. EXTRAINCDIRS = # Compiler flag to set the C Standard level. CSTANDARD_C89 = c89 CSTANDARD_GNU89 = gnu89 CSTANDARD_C99 = c99 CSTANDARD_GNU99 = gnu99 CSTANDARD = -std=$(CSTANDARD_GNU99) # Compiler flags. # -g: generate debugging information # -O*:
Programms aus. Du mußt testen, ob der Stackpointer auf einen gültigen Wert zeigt, d.h. zwischen "__bss_end" und "__stack". Und dann noch, ob im Stack eine genügend große Reserve nicht unterschritten wurde (Stack mit Muster füllen und prüfen, wieviel Bytes mit dem Muster noch übrig sind). Dieser Test
-
Thread
Tangens sprengt die Codemenge
float b ) { return (a * 3.21 + 4.73) / b; } [/c] ergibt: [c] GCC 4.3.0 text data bss dec hex filename 2564 8 0 2572 a0c test.out [/c] Die 4 Grundrechenarten passen also definitiv nicht in den ATtiny2313. Peter
ATtiny2313. > > Dann hast du das -lm vergessen Stimmt, jetzt gehts: [c] text data bss dec hex filename 930 0 0 930 3a2 test.out [/c] Peter
-
Thread
Hilfe - AVR-GCC "optimiert" Schleife zur Endlosschleife
95 wdr #include <avr/wdt.h> int main (void) { int i = 0; while (--i) 36: 89 81 ldd r24, Y+1 ; 0x01 38: 9a 81 ldd r25, Y+2 ; 0x02 3a: 01 97 sbiw r24, 0x01 ; 1 3c: 9a 83 std Y+2, r25 ; 0x02 3e: 89 83 std Y+1, r24 ; 0x01 40: 89 81 ldd r24, Y+1 ; 0x01 42: 9a 81 ldd r25, Y+2 ; 0x02 44: 00 97 sbiw r24, 0x00 ; 0 46: b1 f7 brne .-20 ; 0x34 <__CCP__> 48: ff cf rjmp
-
Thread
DWarf mit GCC3.4.0 funktioniert nicht
look for include files here. EXTRAINCDIRS = # Compiler flag to set the C Standard level. # c89 - "ANSI" C # gnu89 - c89 plus GCC extensions # c99 - ISO C99 standard (not yet fully implemented) # gnu99 - c99 plus GCC extensions CSTANDARD = -std=gnu99 # Place -D or -U options here CDEFS
COFFCONVERT=$(OBJCOPY) --debugging \ --change-section-address .data-0x800000 \ --change-section-address .bss-0x800000 \ --change-section-address .noinit-0x800000 \ --change-section-address .eeprom-0x810000 coff: $(TARGET).elf @echo @echo $(MSG_COFF) $(TARGET).cof $(COFFCONVERT) -O coff-avr
-
Thread
Programm größer als RAM-Größe
lange Zeit gesträubt, auch Flash zu verwenden. Deren Flash 8051 heißen jetzt XC800. Z.B. Atmels AT89C51 mit Flash ist von 1993.
in das RAM kopiert werden. text und data zusammen machen sozusagen deine Programmgröße aus. bss sind nicht initialisierte Variablen oder meisten einfach mit 0 initialisierte Variablen und müssen im RAM stehen. Beim Reset ladet die CPU den Befehl von einer bestimmten Addresse(Resetaddresse)
-
Thread
AVRdude hängt beim flashen
, enclose it in quotes. EXTRAINCDIRS = # Compiler flag to set the C Standard level. # c89 = "ANSI" C # gnu89 = c89 plus GCC extensions # c99 = ISO C99 standard (not yet fully implemented) # gnu99 = c99 plus GCC extensions CSTANDARD = -std=gnu99 # Place -D or -U options
COFFCONVERT += --change-section-address .data-0x800000 COFFCONVERT += --change-section-address .bss-0x800000 COFFCONVERT += --change-section-address .noinit-0x800000 COFFCONVERT += --change-section-address .eeprom-0x810000 coff: $(TARGET).elf @echo @echo $(MSG_COFF) $(TARGET).cof
-
Thread
Stack Überschreiber beim Rechnen mit uint64_t
return a/b; } [/c] [code] $ avr-gcc div64.c -Os && avr-size a.out text data bss dec hex filename 4392 0 16 4408 1138 a.out $ avr-gcc div64.c -Os -DMYDIV && avr-size a.out text data bss dec hex filename 138 0 16
Data: 24 bytes (2.3% Full) (.data + .bss + .noinit) [/pre] Ist aber nur so schnell hingeschludert. Also nicht getestet und nicht optimiert. Vielleicht kanns ja mal jemand ausprobieren und berichten. Peter
-
Thread
Fleury I2C und ATMEGA128 Problem
, enclose it in quotes. EXTRAINCDIRS = # Compiler flag to set the C Standard level. # c89 = "ANSI" C # gnu89 = c89 plus GCC extensions # c99 = ISO C99 standard (not yet fully implemented) # gnu99 = c99 plus GCC extensions CSTANDARD = -std=gnu99 # Place -D or -U options
COFFCONVERT += --change-section-address .data-0x800000 COFFCONVERT += --change-section-address .bss-0x800000 COFFCONVERT += --change-section-address .noinit-0x800000 COFFCONVERT += --change-section-address .eeprom-0x810000 coff: $(TARGET).elf @echo @echo $(MSG_COFF) $(TARGET).cof
-
Thread
Makefile Uart Korrekt?
, enclose it in quotes. EXTRAINCDIRS = # Compiler flag to set the C Standard level. # c89 = "ANSI" C # gnu89 = c89 plus GCC extensions # c99 = ISO C99 standard (not yet fully implemented) # gnu99 = c99 plus GCC extensions CSTANDARD = -std=gnu99 # Place -D or -U options
# 64 KB of external RAM, starting after internal RAM (ATmega128!), # used for variables (.data/.bss) and heap (malloc()). #EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff # 64 KB of external RAM, starting after internal RAM (ATmega128!), # only used for heap (malloc()). #EXTMEMOPTS
-
Thread
LCD Helligkeit per AVR steuern
richtigen Weg. Zur Ansteuerung der HGB würde sich ein N-Kanal-FET mit niedrigem RDSon eignen, z.B. ein BSS89 oder so. Der wird dann mit Drain an die Kathode der HGB und mit Source an GND gelegt. Das Gate wird vom AVR angesteuert. Den kleinen Vorwiderstand (c.10R) aber trotzdem einbauen, falls der FET mal
-
Thread
Was sind eure Lieblings-ICs?
Noch ein paar andere Liblinge: MSP5.0A / MSP3V3 - Supressordioden, die kommen überall mit drauf. BSS84 / BSS123 - Logic Level Mosfets BTS432 / BTS555 - Hi Side Switch
Programmroutinen geschrieben hatte (die portiert auch heute noch in einigen AVRs ihren Dienst tun) AT89C2051 --------- - weil mit diesem ohne EProm, Latch und Bus-Dekoder kleine programmierbare Schaltungen realisiert werden konnten CH340G ------ - weil mit diesem extrem preiswerten China-Chip unter
-
Thread
Bistabiles Relais umschalten Wenn Steuerspannung offen
offensichtlich hast du es geschafft mein Geschriebenes zu verstehen, sehr gut! Kann ich für einen BSS84 auch einen IRF4905 nutzen oder passt das zB wegen der Rds ON nicht? Und ist für den BSP89 ein IRLB3034PbF nutzbar? V1 ist Dauerplus +12V und V2 PULSE meine anliegende Spannung von +12V oder hochohmig
-
Thread
umrüsten auf SMD
Für die 1N4148 gibt es die LL4148, TL081 gibts in SO8, 7805 bzw. vergleichbares /z. B: TA7805) in SOT89. 2N2222 ist Waldundwiesen-Teil, da gibts sicher 10^8 Typen in SMD. Du solltest eigentlich alles bei Reichelt finden.
Dioden 1N4148 und 1N4004 und den BS250 hab >ich alles gefunden Die SMD Varianten der BS Typen heissen BSS. Allerdings wird die Nummer nicht die gleiche sein.
-
Thread
C Compiler für Z80?
C-Compiler von 1985 wirklich verwenden will? Der kennt prinzipbedingt nur das grausliche "K&R"-C *vor* C89, das keine Funktionsprototypen und also auch so gut wie keine Typüberprüfungen kennt ... Brr. Ich denke, daß da SDCC eindeutig zu bevorzugen sein sollte.
Stackpointer setzen - ggf. systemspezifische Initialisierungen - ggf. data vom ROM in den RAM kopieren - bss löschen - main anspringen
-
Thread
Kleinsignal Mosfet n-Kanal mit G/D/S Reihenfolge
Früher gabs mal den BSS89.