-
Thread
Suche Simulator für 8051
gut. Die AVR sind aber deutlich schlechter zum kriegen. Mit Mikrochip fährt mindestens bei uns in N.A. eigentlich besser. Die STM32, SiLab, und NXP sind auch keine Problem. Atmel ist mit Abstand am schwierigsten
kleinen Code zu erzeugen. Und daher ist der Adreßbereich im Befehlswort auf 8Bit beschränkt, wobei 128Byte SRAM und 128Byte IO-Bereich sind. Im Unterschied zum PIC hat man aber für mehr SRAM nicht das unsägliche Banking benutzt, sondern weitere 64kB über spezielle Befehle linear adressierbar gemacht
-
Thread
erster Mikrocontroller programmieren -> fragen
geringerer Stromverbrauch - .... Außerdem gibt es gleich ausgestattete ATMega164/644/1284 mit 16/64/128k Flash. Der ATMEga1284 hat noch einen zusätzlichen Timer. >Soweit ich weiß ist der 324 pinkompatibel, >richtig? Ja. MfG Spess
geringerer Stromverbrauch > - .... > > Außerdem gibt es gleich ausgestattete ATMega164/644/1284 mit 16/64/128k > Flash. Der ATMEga1284 hat noch einen zusätzlichen Timer. > >>Soweit ich weiß ist der 324 pinkompatibel, >>richtig? > > Ja. Ich glaube, der ATmega324A ist sogar billiger als der überholte
-
Thread
VS1053 SPI- und CLKI Frequenz
von Sparkfun.com zum Laufen zu bekommen. Ich sende meine MP3 in 2048Byte Blöcken an meinen XMega128A1 per USB und dieser leitet sie weiter. Mit 64kb/s mp3s funktioniert es wunderbar. Mit 128kb/s mp3s stockt es. mit 320kb/s mp3s funktioniert es nicht. Nun weiß ich nicht, wo der Fehler stecken
xMega nur auf 2Mhz konfigurieren. Die nächste Stufe wäre schon 8Mhz: (SPIx.CTLR->SPR0/1 = 2Bit für 128/64/16/4) als SPI_PRESCALER_DIV 2. Möglichkeit: SCI_CLOCKF zu gering der VS1053 ist mit einem 12.288Mhz Quarz ausgestattet. Nun steht im Datenblatt das beim Abspielen von WMA oder AAC der Clock
-
Thread
82S129 PROM emulieren mit Attiny
PLL-Generator liest das PROM aus). Ich habe nun schon alles in Assembler programmiert (ich hab vorher nie avr-assembler (nur SSE etc. auf x86) programmiert, der code ist daher vielleicht nicht ganz optimal, sieht aber meines Empfindes immer noch sehr viel besser aus als das was avr-gcc aus meinem C-Code gemacht
loop ; = 8 cycle .org (pc + 0x7F) & 0xff80 PLL_data: .db 0x04, 0x01, 0x0C, 0x04, 0x0F, 0x08, 0x00, 0x09 [/avrasm] Als Takt die interne PLL (16MHz). Peter
-
Thread
Knobelei: CRC Polynom / Checksummen-Algorithmus gesucht
27 2 1 128 158 28 2 1 128 252 29 2 1 128 234 30 2 1 128 208 31 2 1 128 198 32 2 1 128 189 33 2 1 128 171 34 2 1 128 145 35 2 1 128 135 36 2 1 128 229 37 2 1 128
128 221 123 2 1 128 203 124 2 1 128 169 125 2 1 128 191 126 2 1 128 133 127 2 1 128 147 128 2 1 128 66 129 2 1 128 84 130 2 1 128 110 131 2 1 128 120 132
-
Thread
Problem mit Stackpointer
R16,0x86 RCALL EndstufeB RJMP Main Takt_63: LDI R16,0x3F CP R16,Sinus RJMP Takt_64 LDI R16,0xFF RCALL EndstufeA LDI R16,0x83 RCALL EndstufeB RJMP Main Takt_64: LDI R16,0x40 CP R16,Sinus RJMP Takt_65 LDI R16,0xFF RCALL EndstufeA LDI R16,0x80
lpm R16,Z ; Byte aus Tabelle holen RCALL EndstufeB ret tabelle: .db 0x83,0xFF,0x86,0xFF,0x89,0xFF,0x8C,0xFF .db 0x8F,0xFF,0x92,0xFE,0x95,0xFE,0x98,0xFD .db 0x9C,0xFC,0x9F,0xFC,0xA2,0xFB,0xA5,0xFA .db 0xA8,0xF9,0xAB,0xF8,0xAE,0xF7,0xB0,0xF6 .db
-
Thread
AVR Synthesizer mit ATxmega128A1
WAV_RES_BANDLIMITED_SAW_1 + wave_index]; uint16_t shift = static_cast<uint16_t>(parameter_ + 128) << 8; // For higher pitched notes, simply use 128 uint8_t scale = 192 - (parameter_ >> 1); if (note_ > 64) { scale = U8Mix(scale, 102, (note_ - 64) << 2); scale = U8Mix(scale, 102
erzeugen aus dem Audio-Signal ein Differenzsignal für den ADC-Eingang. ATMEL Notes ADC im Xmega128A1: http://www.atmel.com/images/atmel-8032-using-the-atmel-avr-xmega-adc_application-note_avr1300.pdf Bild: ADC mit Differenzial-Eingang Initialisierung des ADC im Xmega128A1 Prozessor [c]
-
Thread
TG12864B-03 Darstellungsprobleme
= 40 $lib "glcdKS108.lib" 'Grafik-Display mit Anschlluessen beschreiben: Config Graphlcd = 128 * 64sed , Dataport = Portd , Controlport = Portb , Ce = 2 , Ce2 = 3 , Cd = 0 , Rd = 1 , Reset = 5 , Enable = 4 Dim X As Byte , Y As Byte , I As Byte Cls
Grafik-Display-Routinen: $lib "glcdKS108.lib" 'Grafik-Display mit Anschlluessen beschreiben: Config Graphlcd = 128 * 64sed , Dataport = Portd , Controlport = Portb , Ce = 2 , Ce2 = 3 , Cd = 0 , Rd = 1 , Reset = 5 , Enable = 4 Dim X As Byte , Y As Byte , I As Byte Initlcd 'Grosse Zeichen Setfont Font8x8
-
Thread
Suche speichersparende Möglichkeit für exp10()
6,19,30,42,54,66,78,90,102,114,126,138&chds=-1,150&chxl=1:|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|0:|1|2|4|8|16|32|64|128|256|512|1024|2048&chxt=x,y x-Achse: Anzahl Teilintervalle N y-Achse: erreichte Genauigkeit in Anzahl Dezimalstellen D Die Approximierte ist der Sinus in [0,π] Wie erwartet linearisiert
(((((((2486885l *db - 967785290l) >> 12) *db + 1566098334l) >> 11) *db + 776140196l) >> 11) *db + 564298833l) >> 10) *db + 471038512l) >> 10) *db + 200005508l
-
Thread
T6963C initialisierung
T6963c und kann mir sagen, was ich falsch mache? Hier noch der Code. betrieben mit einem ATXMega128. /* * lcd_driver.c * * Created: 03.03.2012 19:53:09 * Author: */ #define F_CPU 32000000 #include <avr/io.h> #include <stdlib.h> #include <util/delay.h> #define LCD_DATA PORTK
Moin, dein Code ist zu gut dokumentiert um da durchzusteigen. Im Anhang das DB zum t6963 achte aufs Timing. MfG
-
Thread
Probleme mit Temperatursensor DS18B20
1000000 Dim Rom1 As Byte Dim Temp As Single Config 1wire = Portc.0 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Lcd = 16 * 2 Cursor Off Cls Locate 1 , 1 Lcd "AK Modul Bus" Locate 2 , 1 Lcd "ES-M32"
8 4 2 1 1/2 1/4 1/8 1/16 enthält. Das obere Byte mit den Wertigkeiten <5 gleiche Sign Bits> 64 32 16 lässt Du dann entfallen. 20° -16 = 4 => LSB = 64 (1/16°) 64 / 2 = 32 Da meine DS18B20 gerne 1 bis 2°C mehr anzeigen, haut 40 - 50 hin.
-
Thread
Bascom ist gut
einen anderen Basic-Dialekt hinweisen, noch dazu vollkommen kostenlos und sogar mit OO-Ansatz: LunaAVR. http://avr.myluna.de/doku.php?id=de:start Es ist quasi ein RealBasic-Clone (fortschrittliches VB) für Windows, Linux und MacOSX. Vor Allem letzteres (noch nicht ganz fertig) dürfte ein wirkliches
Yalu X. schrieb im Beitrag #2663892: > Nehmen wir besser den GCC für PCs, denn der AVR-GCC ist ein Cross- > Compiler und übersetzt sich deswegen nicht selber. Du hast sicher bemerkt dass es hier im Thread um Compiler wie AVR GCC geht und nicht um beliebige andere Compiler, mit diesem
-
Thread
UHF Vorverstärker, geringe Stromaufnahme
geht die Verstärkung stark zurück. Dabei habe ich die Durchlaßdämpfung des Eingangsfilters von 2-3 dB bereits herausgerechnet. Eingangspegel -64 dBm, übersteuern kann also nichts. Die Messwerte: R1 1M 500k 330k 220k R2 220k 220k 120k 120k I 0,15mA 0,31mA 0,51mA 0,76mA
Entkopplung. Daran schliesst sich ein einfacher Empfänger/demodulator an. Gesteuert wird das über einen mit 128Khz getakteten AVR, der auch die Messaufnehmer auswertet. Das ganze soll incl eines selten aufgetasteten Senders im Mittel max 1mA aufnehmen. Ein Fertigmodul bringt das nicht. Übrigens, mit Sanyo
-
Thread
Transistortester AVR
-DPULLUP_DISABLE -DANZ_MESS=25 -DPOWER_OFF -DBAT_CHECK -DBAT_OUT=150 -DBAT_POOR=64 -DF_CPU=8000000UL -mmcu=atmega168 -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT main.o -MF dep/main.o.d -DLANG_ENGLISH -c ../main.c avr-gcc
DNO_AREF_CAP -DUSE_EEPROM -DPULLUP_DISABLE -DANZ_MESS=25 -DPOWER_OFF -DBAT_CHECK -DBAT_OUT=150 -DBAT_POOR=64 -DF_CPU=8000000UL -mmcu=atmega168 -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT wait1000ms.o -MF dep/wait1000ms.o.d -c ../wait1000ms.S avr-gcc
-
Thread
DDS normal ?
.db 152,151,149,148,146,145,143,142,140,138,137,135,134,132,131,129 .db 128,126,124,123,121,120,118,117,115,113,112,110,109,107,106,104 .db 103,101,99,98,96,95,93,92,90,89,87,86,84,83,81,80 .db 79,77,76,74,73,71,70,69,67,66,64,63,62,60,59,58
.db 56,58,59,60,62,63,64,66,67,69,70,71,73,74,76,77 .db 79,80,81,83,84,86,87,89,90,92,93,95,96,98,99,101 .db 103,104,106,107,109,110,112,113,115,117,118,120,121,123,124,126 Grüße Werner
-
Thread
ADC Messwert springt
Quellcode hab ich grad nicht da, kommt sobald ich zuhause bin^^ ADC-Takt liegt bei 62,5kHz (8MHz Takt und 128-Prescaler)
Cursor Home rcall lcd_command rcall delay5ms ret [/avrasm] Probehalbe Multiplier auf 64 setzen hat auch nicht geholfen. Nochmal Danke! Ludwig
-
Thread
Entwicklungen und Forschung um den Sparmatic Comet / Zero v2 Heizungsthermostat
im Beitrag #2487672: > Der große Atmel-Chip hat die Bezeichnung "ATMEL 0847" Nö, der heißt AT45DB642D und ist ein 64MBit DataFlash. Es enthält die PC-Software und die Einstellungen. Der kleine MLF ist ein Tiny25.
Wie du meinst, nur nicht weinen wenn's mit dem AVR vorbei ist... :)
-
Thread
Billiges Cortex-M4-Board STM32F4DISCOVERY jetzt erhältlich
Christoph Kessler (db1uq) schrieb im Beitrag #2419601: > Best.Nr. 745-8434 Was für ein Mini USB Kabel braucht man genau? Kannst Du bitte mal ein Foto von der USB Buchse machen?
treiber und das stm utility bereits installiert. das utility findet mein board aber auch nicht. win 7 64 bit problem?
-
Thread
Bootloader ATmega 2561
mov r18, r24 SPCR |= _BV(SPE); 1f114: 8c b5 in r24, 0x2c ; 44 1f116: 80 64 ori r24, 0x40 ; 64 1f118: 8c bd out 0x2c, r24 ; 44 SPDR = (uint8_t)(Value >> 8); 1f11a: 9e bd out 0x2e, r25 ; 46 // param ... zu sendende Daten // return
; LCD_Wait(); SPCR |= _BV(SPE); 1f122: 8c b5 in r24, 0x2c ; 44 1f124: 80 64 ori r24, 0x40 ; 64 1f126: 8c bd out 0x2c, r24 ; 44 SPDR = (uint8_t)(Value & 0xff); 1f128: 2e bd out 0x2e, r18 ; 46 // param ... zu sendende Daten // return
-
Thread
AX81 - ZX81 im AVR
es nicht ;-) Der ZX81 hat ja auch noch 8K ROM und sowohl ROM als auch RAM tauchen mehrfach in den 64K Adressraum auf. Gelöst habe ich das mit einer Memory-Map Tabelle, wo ich 256-Byte-weise den Z80 Adressraum auf AVR Flash oder AVR-Ram mappe. Leider bekommt am auf diese Weise keine 16K sondern nur 15,75K
Hello All I'm using avrdude via a UsbtinyIsp to program the avr 1284p, but is limited by the 64k file size barrier, what programmer have other poeple used, can some one please supply a programmed 1284p avr for me. thanks David
-
Thread
gcc und Optimierung
Funktion kommt wird es zu [code] swap_bits: mov r25,r24 sbrs r24,0 rjmp .L10 ldi r24,lo8(-128) rjmp .L2 .L10: ldi r24,lo8(0) .L2: sbrc r25,1 ori r24,lo8(64) .L3: sbrc r25,2 ori r24,lo8(32) .L4: sbrc r25,3 ori r24,lo8(16) .L5: sbrc r25,4 ori r24,lo8(8) .L6:
? byte2 |= (1<<b1); ... Eine if-Abfrage pro möglichem Bit, ergibt also bei 32 Bit insgesamt 64 Befehle (128 Byte Flash) + ein paar Bytes Initialisierung. Schneller geht es meiner Meinung nach nicht. Dann musst du byte1 - byte4 nur noch über i2c übertragen. Voila. :-)
-
Thread
Daten mit hoher Frequenz speichern! Aber wohin?
Allenfalls ein externes Datenflash. Zb ein AT45DB321 oder so.
goldeneyes1987 schrieb im Beitrag #2389493: > 90 MByte!! Äh - *hust* - ich kenne keinen AVR, der mehr als 256KB Flash hat, geschweigedenn mehr als 64KB SRAM handhaben kann. Wenn Du einfach nur Daten schaufeln musst und Du diese nur selten wieder löschen musst - nimm 'ne SD-Karte.
-
Thread
Wittig(welec) DSO W20xxA Open Source Firmware (Teil5)
86<\r><\n> Channel 3: ADC average value = 0 Diff = -128<\r><\n> Channel 4: ADC average value = 0 Diff = -128<\r><\n> Calibration run 3<\n><\r> Channel 1: ADC average value = 126 Diff = -2<\r><\n> Channel 2: ADC average value = 51 Diff = -77<\r><\n> Channel 3: ADC average value = 0 Diff = -128<\r><\n> Channel 4: ADC average value = 0 Diff = -128<\r><\n> Calibration run 4<\n><\r> Channel 1: ADC average value = 126 Diff = -2<\r><\n> Channel 2: ADC average value = 65 Diff = -
-
Thread
ADC Dynamikumfang 46dB mit Atmega?
Schritt. Jetzt soll meine Skala ja aber logarithmisch sein. Die unterste Led beginnt also bei 5V - 46db = 25mV zu leuchten. Wenn im unteren Bereich 2dB pro Led angezeigt werden sollen liegt die Schwelle für die nächste Led also bei 31,5mV was ja gerade so einem "ADC-Schritt" entsprechen würde.
--------------- + 6dB 1023 0,0085 0dB 512 0,017 - 6dB 256 0,034 -12dB 128 0,068 -18dB 64 0,135 -24dB 32 0,27 -30dB 16 0,53 -36dB 8 1,0 -42dB 4 1,9 -48dB 2 3,5 -54dB 1 6,0 Ich hab versucht, das Ganze
-
Thread
100kb Variablen auf ATMEGA2560
Der avr-gcc kann m.W. nur Felder bis 64k anlegen.
Klaus Wachtler schrieb im Beitrag #2358883: > Der avr-gcc kann m.W. nur Felder bis 64k anlegen. Schrieb ich ja, dass irgendwo Schluss ist. 64k wäre ein sinnvoller Wert in Verbindung mit einerm 16bit Datenpointer.