-
Thread
Wie ist PORTB implementiert?
template<...> auch nicht eine uint8_t PortNummer übergeben, sondern eine voll funktionsfähige class{} PortC (oder ein struct{} ) Als Beispiel: ports_.h enthält die class PortImplementation{}, die die Funktionalität enthält. Das Makro AUTO_IO_REG_WRAPPER stellt die Verbindung zu avr.io her. . der PortC wird deklariert mit: [c] namespace Private { AUTO_IO_REG_WRAPPER (PORTC, OutC, uint8_t); AUTO_IO_REG_WRAPPER (DDRC, DirC, uint8_t); AUTO_IO_REG_WRAPPER (PINC, InC, uint8_t); } using PortC = PortImplementation < Private::OutC,
-
Thread
SPI Display am Attiny 3216
RESET_PORT PORTC #define CS_PIN PIN3_bm // PC3 #define CS_PORT PORTC void spi_init(void) { // SPI0 auf alternativen Pins: MOSI=PC2, SCK=PC0 //PORTMUX.SPIROUTEA = PORTMUX_SPI0_ALTERNATE_gc; PORTMUX.CTRLB |= PORTMUX_SPI0_bm; // SPI0 auf Alternate: SCK=PC0, MOSI=PC2 PORTC.DIRSET = PIN0_bm | PIN2_bm; // SCK, MOSI SPI0.CTRLA = SPI_ENABLE_bm | SPI_MASTER_bm; SPI0.CTRLB = SPI_SSD_bm; } void gpio_init(void) { PORTA.DIRSET = DC_PIN; PORTC.DIRSET = CS_PIN |
-
Thread
Bitschubserei / Testerei (kein Osterei) in AVR GCC klappt nicht
Korb_getroffen) { ... } [/c] Makros helfen auch bei Schaltausgängen: [c] #define Sirene_an PORTC |= (1<<PC1) #define Sirene_aus PORTC &= ~(1<<PC1) if ... { Sirene_an; } else { Sirene_aus; [/c] Falls dir solche Makros suspekt sind, schreibe stattdessen Funktionen mit sprechenden
dachte, und denke, dafür ist ein Forum da. - Um zu Fragen. Zur Info: das Modul, um das es hier geht, läuft problemlos.
-
Thread
Bootloader mit Microchip Studio
void ) = 0x0000; DDRC = (1 << DDC5); for (uint8_t i = 0; i < 10; i++) { PORTC ^= (1 << PORTC5); // toggle pin _delay_ms (200); } start(); } [/c] So weit. Dann ein Hauptprogramm. Macht das gleiche, nur anderer Ausgang [c] #define F_CPU 1000000UL #include
Deshalb gibts den Page Buffer. Was verstehst du daran nicht? Byteweises schreiben direkt ins Flash geht nicht.
-
Thread
Atmega32 - PortPin geht nicht auf High wenn Pullup gesetzt
zu deaktivieren, geht der PC5 wieder auf Lo (0). Setze ich nun den Pullup, geht krzfristig der Pin auf High, dann aber ist er Lo. Es ist nur das Messgerät auf dem Pin. Was ist falsch? oder habe ich den Pin geschossen
Gleich Wastl, habe nun mal ein Testprogramm geschrieben. Da geht der Pin auf High. [c] * * Atmega32_Test.c * * Created: 06.04.25 20:20:37 * Author: Thomas */ #include <avr/io.h> int main(void) { DDRC = 0b11011111; // PortC Ausgänge -
-
Thread
PIC16F1455 treibt LCD nur mit angeschlossenem PICkit3
Wie das Nibble respektive die Datenbits wohl definiert sind ;) Wenn da steht das D4 bis D7 PORTC,4 bis ,7 sind, dann darf der Compiler nicht im LATC rumpfuschen. Mit evtl. o.g. Effekten. Frank K. schrieb im Beitrag #7844493: > Und man könnte den Code umformulieren: Effektiv ja, ergibt aber
Numbers und die sind verpönt, oder? Wie schreibt man's richtig, übersichtlich und wartbar? Wie geht man damit um, das Bit 4-7 auch am Port 4-7 sein muss und sich die Reihenfolge nicht ändern darf? Die Lösung mit D4-D7 ist da ja flexibler, da kann es jeder Pin sein, aber der Code kann Seiteneffekte
-
Thread
ATmega328P Stromverbrauch
kommt man auf ca. 1mA für das Display und 266µA für den MCU in den Ruhephasen. Wohlgemerkt es geht hier nur noch um die Optimierung per Software, denn die Schaltung ist bereits fertig und die Platinen produziert.
Atmel-Handbuch scheint das nicht so zu stehen > ... Man kann eine RTC nehmen ... > Wohlgemerkt es geht hier nur noch um die Optimierung per > Software, denn die Schaltung ist bereits fertig und die > Platinen produziert.
-
Thread
Mikrocontroller mit 5V
sein, genauso wie die 3.3V-Zeit – diese Standards werden die meisten User hier überleben. Im Kern geht es bei moderneren µC oder FPGAs oft runter bis auf ca. 1 bis 1,2V, die Anbindung wird intern und quasi unsichtbar für den User über Levelshifter vollführt – beim STM32 kann man diese Core-Spannung auch
. schrieb im Beitrag #7804724: > Moderne AVR haben hier solch Beschränkungen nicht. Leider nur PORTC, > d.h. höchstens 8 Pins, bei einigen nur je 4 Pins. Ähem... Das ist die Zahl der Pins, die du mit einer von Vdd abweichenden Spannung betreiben kannst. Dir bleibt aber immer noch die Wahl
-
Thread
EADOGM162W-A-Anzeige mit XMEGA
(PC5) #define LCD_D7 PIN4_bm // Data Bit 7 (PC4) // Helper macros #define LCD_E_HIGH() (PORTC.OUTSET = LCD_E) #define LCD_E_LOW() (PORTC.OUTCLR = LCD_E) #define LCD_RS_HIGH() (PORTC.OUTSET = LCD_RS) #define LCD_RS_LOW() (PORTC.OUTCLR = LCD_RS) // Function Prototypes void lcd_init()
(nibble & 0x04) PORTC.OUT |= (1 << D6); // Set D6 if (nibble & 0x08) PORTC.OUT |= (1 << D7); // Set D7 } void LCD_EnablePulse(void) { PORTC.OUT |= (1 << E); // Set E HIGH _delay_us(1); // Pulse
-
Thread
usart problem mit ttl-Pegel
> > Ist mir aber zu kompliziert. Ich mach das in software: Totaler Unsinn. Und ein Soft-UART geht anders.
. [c] #define RX_BIT_TIME 96 #define RX_DATA (PINC & (1<<2)) #define TEST_LOW PORTC &= ~(1<<3); #define TEST_TOG PORTC ^= (1<<3); uint8_t sub_usart_rx(void) { uint8_t data=0; TEST_LOW; while(RX_DATA); // Warte auf fallende Flanke vom Startbit _delay_us
-
Thread
USART tx-timing Problem
M328-Nano? Selbst Google ist da etwas hilflos. Karl K. schrieb im Beitrag #7774731: > Mit PORTC &= ~(1<<2); wird von Senden auf Empfangen umgeschaltet. Karl K. schrieb im Beitrag #7774617: > PORTC|=(1<<2); > ... > PORTC &= ~(1<<2); Magic Numbers machen den Code nicht gerade lesbarer.
mal Hilfe: Ich habe drei rs485-terminals: WR, PC, M328 Senden M328-PC und M328-WR und PC-WR geht. Empfangen PC-WR, M328-PC(Bild1) geht. Empfang M328-WR(Bild 2 +3)kommt kein brauchbares Signal. Woran kann das liegen? Ist der Adapter unbrauchbar?
-
Thread
SPI Master mit Attiny1616
] void init_spi() { PORTA_DIRSET = 0x02 | 0x04 | 0x10; //set clock, MOSI and NSS as output PORTC_DIRSET = 0x02; //set rst as output PORTC_OUTSET = 0x02; //set reset high SPI0_CTRLA = 0x23; SPI0_CTRLB = 0x04; } [/c] [c]void readReg(uint8_t reg, uint8_t *result, size_t length = 1) {
da stehen, also eine lokale Redefinition(?) der Methode? Ohne das setzen aller PINS und Register geht natürlich gar nichts...
-
Thread
C > Struct > Pointer - Adresszuweisung
(*(PORT_t *) 0x0600) /* Port A */ #define PORTB (*(PORT_t *) 0x0620) /* Port B */ #define PORTC (*(PORT_t *) 0x0640) /* Port C */ #define PORTD (*(PORT_t *) 0x0660) /* Port D */ #define PORTE (*(PORT_t *) 0x0680) /* Port E */ #define PORTF (*(PORT_t *) 0x06A0) /* Port F */
Habe gerade im Datenblatt gesehen das es ab dem "GPIO_OUT_W1TC_REG" nicht mehr der Reihe nach geht. Das war mir vorher nicht bewusst.
-
Thread
SPI Kommunikation zwischen AT90CAN und ATmega16 (AVR)
spätestens ab dem zweiten durchlauf die MISO Daten gleich der MOSI Daten sein sollten. Stattdessen geht das MISO Signal low über die SS Zeit und verhält sich danach wie ein Kondensator der sich auflädt. Das wäre echt super wenn ihr mir helfen könntet oder falls ihr die Datenblätter kennt mich dort
als Dateianhang [/code] "Längerer Sourcecode" ist es wenn er über eine Bildschirmseite hinaus geht.
-
Thread
xmega timer mit AND verbinden
Clear Bit in I/O Register I/O(A, b) ← 0 1 Clocks Ein Beispiel mit einem ATmega Anfang: cbi PORTC, 6 ;1Takt LOW sbi PORTC, 6 ;1Takt HIGH cbi PORTC, 6 ;1Takt LOW sbi PORTC, 6 ;1Takt HIGH cbi PORTC, 6 ;1Takt LOW sbi PORTC, 6 ;1Takt HIGH cbi PORTC, 6 ;1Takt LOW nop ;1Takt nop
Carsten-Peter C. schrieb im Beitrag #7724890: > Ein Beispiel mit einem ATmega > Anfang: > cbi PORTC, 6 ;1Takt LOW > sbi PORTC, 6 ;1Takt HIGH Atmega musst du schon näher spezifizieren. Die Classic-ATmegas brauchen für cbi und sbi je zwei Takte.
-
Thread
STM32L4 Standby-Mode
sind 12.8uA. Vielleicht muss ich die Platine nochmal ordentlich putzen. :) Aber erstaunlich. Es geht alles, der ist ja vorher von seinem normalen Betriebsstrom auch runter gefahren, aber irgendein Detail fehlt dann noch... Vanye
ein paar nA ... aber mein Ego hast sich von diesem Schock immer noch nicht erholt. Dass es aber geht, habe ich kürzlich bei einem Webinar von ST gesehen (STM32U0). Die Angaben im Datenblatt sind also durchaus real und die HAL scheint auch zu funktionieren.
-
Thread
Ich verstehe diesen Code nicht
dann sowas wie [c] #define PORTA (*(PORT_t *) 0x0400) /* I/O Ports */ #define PORTC (*(PORT_t *) 0x0440) /* I/O Ports */ #define PORTD (*(PORT_t *) 0x0460) /* I/O Ports */ #define PORTF (*(PORT_t *) 0x04A0) /* I/O Ports */ [/c] in
> Sogar Funktionsaufrufe, z.B. aus der math.h werden schon zur Compilezeit > aufgelöst. Wie geht das? Also woher kann der Compiler wissen, welche "sin" der Linker sich aussuchen würde?
-
Thread
AVR64DD28, mEDBG, Studio 7.0 - Fehler beim Schreiben von Fuses
Hallo, Fuse schreiben geht auch nicht, dann wird das Auslesen nach schreiben zum Vergleich fehlschlagen. Es kommt wahrscheinlich nicht das an was geschrieben werden soll. Ich schau mir das Morgen nochmal genauer. Die Flussmittelreste
Hardware, ich habe hier aus der 'tinyAVR® 1-series'-Reihe nur den ATtiny1614, und der hat keinen PORTC. Bei den AVRmxyn fehlt mal PORTB, mal TCA. Kurzum: wenn Sie Ihr Programm so ändern, dass es auf dem ATtiny1614 läuft (u.a. PORTC -> PORTA), will ich mich gerne mit Ihrem LDS-Problem befassen.
-
Thread
Wie würde man eine Spannungsversorgung (5V=) konzipieren, die mit AC & DC (3V -18V) funzt ?
> Besonders schön, mit 3V3 blaue LED zu speisen... Auch MOSFET direkt von > Mikrocontroller... Geht. Machen wir schon lange in Serie. Maxim B. schrieb im Beitrag #7652006: > Auch MOSFET direkt von Mikrocontroller... Geht auch, machen wir genau so lange.
Rechtecksignal. Natürlich. Wozu sollte man einfacher machen, mit 5V, wenn es auch komplizierter geht, mit 3V3 :)
-
Thread
Fragen zur Schaltung
. Du musst schon was zusammenlöten. Ignorieren wir mal den 139 Schaltplan. Taster an uC: geht. uC ohne Quartz: geht auch. 20mA pro LED: das schafft ein 74HC595 ohne ULN2803 direkt. Wenn du sowieso kaufen musst: ein DM13 kann 16 LED mit nur 1 Vorwiderstand. (viele baugleiche anderer Typennummer
Kurzschlüsse zu vermeiden. :-) Der Lerneffekt ist ungleich höher, wenn ein teures Bauteil kaputt geht. Eine Schmelzsicherung kann Halbleiter sowieso nicht sicher schützen, weil sie i.d.R. zu langsam ist.
-
Artikel
Und noch 'ne Nixie-Uhr
die in eckigen Klammern stehenden Werte mit Doppelpunkt als Trennung von/bis bedeuten. Beispiel: PORTC[2:7] bedeutet PORTC2 bis einschließlich PORTC7. Wo welcher Pin genau angeschlossen wird ist dann in der Beschaltung des entsprechenden Moduls oder dem entsprechenden Bauteil zu entnehmen. Im Schaltplan
dessen kommt eine normale IR-Fernbedienung zum Einsatz. Für den Empfang dient das IC TSOP4838 (es geht auch TSOP4836, TSOP1736/8). Auf der Softwareseite habe ich das Projekt IRMP von Frank Mayer genommen. Alle bei mir so herumliegenden Fernbedienungen haben funktioniert. Im Modul habe ich alle IR-Codes
-
Thread
Raspi Pi Pico schnell genug um 4Mhz Z80 zu sniffen?
erneut LTSpice anwerfen. Und wenn die Amplitude nun plötzlich deutlich über und unter die Hysterese geht?
wenig RAM. 16kB finde ich schon ganz ordentlich. Wie groß ist denn der ROM eigentlich, um den es geht?
-
Thread
Digitaler Stromzähler DTZ541-ZDBA SML-Protokoll
Hallo, Bei der SML Nachricht in der es um die Zaehler ID geht bekomme ich zumindest ab und zu einmal den erwarteten Wert und die erwartete Struktur der Nachricht. Daher glaube ich das ich anhand dieser Nachricht meine ersten Fragen am besten formulieren kann
und AVCC. Der Mega8 braucht AVCC, auch wenn der ADC nicht verwendet wird. Ohne die Verbindung wird PortC irgendwie undefiniert parasitär versorgt, unschön.
-
Thread
Interrupt ATtiny85 - Hilfe
Idee?. /*Interrupt Service Routine for INT0*/ ISR(INT0_vect) { PORTB=~PORTB; /* Toggle PORTC */ _delay_ms(50); /* Software debouncing control delay */ } int main(void) { //DDRB=0xFF; /* Make PORTC as output PORT*/ // PB2 - input DDRB &= ~ (1<< PB2);
Michael schrieb im Beitrag #7552446: > PORTB=~PORTB; /* Toggle PORTC */ 1. der Tiny kennt keinen PortC 2. damit stirbt der Pullup ab, und danach ist nix mehr mit kontrolliertem "rising" Michael schrieb im Beitrag #7552446: > // PB4 - output > DDRB = (0<<
-
Thread
Atmel Microchip Studio - kein Break Point Stop
Main rein: #include <avr/io.h> uint32_t debug_value = 0; int main(void) { DDRC |= (1<<PORTC0); /* Replace with your application code */ while (1) { debug_value++; if (debug_value == 50000) { PORTC |= (1<<PORTC0) ; } else { PORTC &= ~(1<<PORTC0) ; } } } Dabei setze ich die Breakpoints auf PORTC... in der If Schleife. Die werden aber ignoriert. Optimization steht auf -Og und Debugging -g2. Tool ist Atmel Ice + Debug wire
-
Thread
STM32F103 Bluepill externen Interrupt auch PIN B1
anderer Anfänger hier mal nach sucht. EXTI_RTSR und EXTI_IMR habe ich noch nicht korrigiert, aber so geht erstmal alles. Ich gehe jetzt erstmal ins Bett. Von da an ist es dann leicht weiter herauszufinden wie es geht. # Bluepill, STM32F103C8, Interrupts [c]program STM32F103V8_16x2; { Declarations
Klar gibt es das da auch, nur darum geht es mir nicht. Die ganzen HAL und andere, da kann ich mir keine der ewig langen Parameter merken. Nach einigen Monaten, wenn ich mal wieder am PC bin, bekomme ich eine Kriese wenn ich ein neues Projekt
-
Thread
Bluepill STM32F103 Port B3 und Port B4
Unabhängig von Mikroe, geht es um die alternativen Portfunktionen vom STm32F103 Diese habe ich aktiviert für Port B3 UND B4 aber nun ist B4 invertiert, was gilt es zu beachten? Warum ist B4 invertiert?
GPIO_PINMASK_ALL); // Set PORTB as digital output GPIO_Digital_Output(@GPIOC_BASE, _GPIO_PINMASK_ALL); // Set PORTC as digital output GPIO_Alternate_Function_Enable(@_GPIO_MODULE_SWJ_JTAGDISABLE ); GPIOB_ODR:=0x0000; While TRUE DO begin { Main program } GPIOB_ODR := not GPIOB_ODR; // Toggle PORTB
-
Thread
Fehlersuche Hardfault ATSAME70Q19B
erfolgreich produziert wird. Der größte Unterschied zu dem laufenden Produkt ist, dass 48 GPIOs (PORTA und PORTC) des µC als Output konfiguriert werden und diese über Pegelkonverter jeweils einen MOSFET ansteuern. In der Firmware wird die ASF verwendet. RTOS kommt nicht zum Einsatz. Die GPIOs werden direkt über die Portregister durch Beschreiben mit jeweils einer Bitmaske für PortA und PortC als Output konfiguriert. Fehlerbild 1: Während des Betriebs werden immer paarweise 2 Pins mit einer Frequenz von z.B. 80Hz für eine Impulszeit von z.B. 350µs auf High gesetzt. Das geht eine gewisse
-
Thread
Peter Dannegger´s ( PeDa ) Entprellroutine in ein Arduino Sketch einbinden
Hallo zusammen, wie geht das? Hier sind 3-Dateien, mit denen es gehen sollte : https://www.mikrocontroller.net/topic/552487#7377397 Habe mal alles in eine Datei im Anhang zu sehen gepackt. Ich bekomme jedoch diese
K. schrieb im Beitrag #7499725: > Niemand hält Dich davon ab, es zu tun. Bring' Dich ein! Es geht ja nur im den Variablennamen `new`, in C++ ist das ein Schlüsselwort.
-
Artikel
Umstieg von Arduino auf AVR
Ports es gibt hängt vom jeweiligen AVR ab. Der Atmega328p hat zum Beispiel vier Stück: PORTA, PORTB, PORTC, PORTD. Ein ATmega2560 hingegen hat derer elf: PORTA - PORTH und PORTJ - PORTL. Gemeinsam ist allen, dass ein Port maximal 8 Pins enthält (PXN, X=Port-Buchstabe, N=Port-Bit). Genaueres gibt es hier
Arduino-Library Ersatz. Nachdem das Minimal-Programm von oben nun auf dem AVR-Board getestet wurde, geht es weiter. Wir haben uns von Arduino verabschiedet, damit aber auch von allen Arduino-Libraries! Das bedeutet, dass selbst so banale Sachen wie Serial.println() nicht mehr existieren. Diese müssen wir
-
Thread
LED toggeln mit ATxmega256A3BU
z.B. so: //IO-Ports einstellen PORTA_DIR = 0xFF; PORTB_DIR = 0xFF; PORTE_DIR = 0xFF; PORTC_DIR = 0b11111011; PORTD_DIR = 0b11111110; while(1) { PORTB_OUTTGL = 0b10000001; //Port B7 und B0 toggeln delay(200ms); } return 0;
also immer PORTn_ davor setzen? Ich glaube ich habe es jetzt verstanden. Im Prinzip: PORTA_DIR geht. Aber: es gibt auch die anderer Variante mit einem C-Struct statt eines eigenen Präprozessor-Symbols für jedes Register. Also: PORTA.DIR geht auch. PORTA ist ein dereferenzierter Zeiger auf eine
-
Thread
STM32 counter up/down mit Step/Dir Signalen
Geht es nur ums Mitschreiben, oder sollen die Signale im STM32F411 erzeugt werden?
Wenn man nicht programmieren will, geht auch der Vorschlag: https://www.mikrocontroller.net/topic/189888#1854601
-
Thread
AVR ATtiny Stromaufnahme
Hallo, meine Messergebnisse stimmen nicht mit den Datenblatt-Werten überein. Konkret geht es um die Stromaufnahme vom Mikrocontroller im Ruhemodus, wenn nur der Oszillator mit Prescaler und der TCB laufen. (getestet am ATtiny402 @ 3.0V, 21°C) [pre] ------------------------------------
Es geht um die tinyAVR® 0-series bzw. megaAVR® 0-series. Für die Eingänge ist mit PORTx.PINnCTRL gesorgt.
-
Thread
Serial.write durch Serial.print ersetzen. AVR Kompilierungsfehler function
!= 512) { PORTC = (addressCounter & 512) >> 8; // (hier A8. 255 ?) PORTA = addressCounter & 255; digitalWrite(40, LOW); digitalWrite(41, LOW); digitalWrite(39, LOW); readWord
//Serial.write(readWord, 1); --- Original //Serial.print(readWord); ---geht nicht digitalWrite(41, HIGH); } } } void loop1(){ if (Serial.available() > 0) { Serial.print(readWord); // geht auch nicht
-
Thread
Altes EPROM auslesen Intersil 6654A (2xCE) mit Arduino
ATmega2560 hat doch ein externes Memoryinterface, da kann man einfach den Chip direkt anschließen. /CE1 geht an ALE, d.h. das Latch ist schon im Chip, einen extra 74HC573 braucht man nicht. Q7..0 werden mit A7..0 an AD7..0 der AVR angeschlossen. /S geht an /RD des AVR. /CE2 an GND, A8 an A8 Nicht vergessen
vermeidet unnoetige Loeterei und Kabelsalat. Das Timing ist voellig unkritisch da statisch. SRAM geht damit ebenso. S' cool man!
-
Thread
Maskieren modern?
Name angesprochen. Damit kann man nicht die falschen Bits im falschen > Register ansprechen. Ok,geht also nicht in C
schrieb im Beitrag #7379805: >> Ich möchte einfach, dass ein Unsinn wie >> ... nicht kompiliert. > Geht leider nicht. Das gilt eben nur für C, in C++ geht es.
-
Thread
Atmega328P Firmware hängt nach Watchdog Reset
for(;;){ // main event loop wdt_reset(); //restart watchdog timer PORTC=(PORTC & ~0x3E) | ((counter >> 11) & 0x3E); //LED blinking action char key=PINB & 1; PORTC=(PORTC & ~1) | key; //output to LED, normally high counter--; if (key==0){
Anfang verursacht. Ist der auskommentiert, tut der Watchdog genau das, was er soll. Das Blinken geht nach Auslösen des Watchdog von vorne los. Hab ich den Delay aktiviert, dann hängt der Watchdog die Firmware auf, kein Blinken mehr nach Auslösen des Watchdog. Hat hierfür irgend jemand eine Erklärung
-
Thread
Arduino und Assembler Programmierung
muss dann für alle SFR_IO's wieder gemacht werden. Es wäre einfacher gewesen die keywords 'PORTB,'PORTC','PORTD',... zu benutzen. Ich hoffte, es geht mit einem geschickten #include an der richtigen Stelle. Dann ist es einfacher einen *.S Tab zu benutzen. Danke für Deine Antworten.
Hallo, Nochmal : Es geht nicht um dieses Beispielprogramm! Es ist Schwachsinn das in Assembler zu schreiben. Es geht ums Prinzip von (nicht "keywords" sondern) Präprozessor-Makros. Übrigens habe ich doch eine Methode gefunden
-
Thread
Atmega8 - Reset-Pin und Rest vom Port C
PC-Freak schrieb im Beitrag #7353310: > Es geht mir darum, dass ich hier zum erstellen x-msle den > Atmel flashen will, bis er tut was ich will. Bin ich zu alt? Was bedeutet "erstellen x-msle"? Und was bedeutet "den Atmel flashen, bis er
Vorwiderstände vor die LED-Anzeige. Warum MISO,MOSI,SCLK freihalten. Warum AVCC nicht anschliessen aber PortC benutzen ? Reset mit G zu belegen geht halt nicht, aber du hast so viele Ausgänge frei, PD4-7, PB2-5, dass PC7 nicht benötigt wird. Wobei man klugerweise alle Segmente der Anzeige auf ein Port legt
-
Thread
avr-gcc: direkter Register Zugriff vs structure-mapping und fehlende Optimierung?
Beitrag #7349917: > Dies passiert aber nur, wenn der Zugriff auf das direction-register von > PortC mit structure-mapping zugegriffen wird. Beim direkten Zugriff via > VPORTC_DIR ist gcc nicht mehr in der Lage zu optimieren: [...] > Das ist sehr merkwürdig. > Was geht da vor? (Ein aliasing Problem
> Compiler *darf* den Wert von "counter" nicht raus- oder reinziehen. Ja, klar. Aber darum geht es doch in diesem Beispiel gar nicht. Hier geht es darum, dass in ATOMIC_BLOCK ja zweimal der Zugriff auf das Status-Register mit dem Macro SREG stattfindet. Und weil das so ist und mit dem Fehler
-
Artikel
AVR Net-IO Bausatz von Pollin
.2011 2xNET-IO und 2xADD bestellt, 4 verschieden volle Kisten bekommen... WSL16 ist mit Verriegelung, geht nicht aufs Board, Jumper fehlen, Spannungsregler doppelt, Poti Löcher zu klein, lsb3 fehlt, SD-Slot hab ich jetzt 3, 100nF hab ich jetzt 4 übrig ... also immer noch lustig. HW-Stand immer noch 1.0 (
an PORTA7) - PORTA0-3 digitaler Eingang (ein/aus) - PORTA4-6 analoger Eingang (0 - 1023) - LCD an PORTC - Schalten in Abhängigkeit von Temperatur und analogem Wert - (Teilweise) Administration über Weboberfläche - Erweiterung des cmd-Befehlsatzes für telnet/rs232 Gedacht ist der Einsatz des AVR-NET-IO-Bausatzes
-
Thread
Atmega8 vers. C - Interuptbehandlung
gemacht.... Kann aber trotzdem schneller Störungen einfangen. Wenn's hier nicht um genaue Zeiten geht, würde ich hier, der Störsicherheit wegen, Pollen.
Interupt's frage oder eben dann > doch pollen. > Es geht nur um : > 4 Eingänge an Port PD.. abfragen. Hier ist immer nur einer 'aktiv' > 1 Eingang abfragen an Port PB.. > 1 Bit an Port PB setzen > 2 Ausgänge für die Displays im Multiplexbetrieb > evtl
-
Thread
7-Segment-Ansteuerung
definiert und verwendete. segmenttabel ist nicht gleich segmenttable Zeile 14 löschen. Zeile 37 geht nach oben wo Zeile 14 war. Dann ist es global und wird im ROM gespeichert.
> Gerhard H. vs. Gerhard O. Hier geht es aber neuerdings streng zu:-)
-
Thread
AVR ATMEGA328PB mit UART.h stürzt ab
define UART_BAUD_RATE 200000 //115200 #define RESET PC4 #define RESET_SLAVES {(PORTC |= (1 << RESET)); (DDRC |= (1 << RESET)); _delay_ms(100); (PORTC &= ~(1 << RESET)); _delay_ms(100);} #define T_TRIGGER_512 37499 #define T_TRIGGER_256 9374 #define DATA_FREQ_512
Beitrag #7304031: > Für so einen kleinen Controller ist es generell kein guter Stil Naja, was geht das geht .... bis es halt kracht.
-
Thread
Wozu übertrieben schnelle Microcontroller?
Gerhard O. schrieb im Beitrag #7281415: > Wenn ich an uC HW > arbeite ist mir eigentlich "PORTC |= (1<<7) lieber; Hmm, mein Compiler wirft einen Fehler weil er PORTC nicht kennt. Es geht doch dabei um Abstraktion. Und die DigitalOut oder was auch immer Klasse wird als Komponente getestet
J. S. schrieb im Beitrag #7281457: > Hmm, mein Compiler wirft einen Fehler weil er PORTC nicht kennt. > > Es geht doch dabei um Abstraktion. Und die DigitalOut oder was auch > immer Klasse wird als Komponente getestet damit ich mich darauf > verlassen kann. Wäre doch gut, wenn
-
Thread
Disasembliertes Hex-File in C nachprogrammieren
nicht richtig verstehe. [c] cbi ADMUX, MUX0; 0000048C; Lösche Bit MUX0 im PortRegister ADMUX cbi PORTC, PORTC2; 0000048E; Lösche Bit PORTC2 im PortRegister PORTC cbi PORTC, PORTC5; 00000490; Lösche Bit PORTC5 im PortRegister PORTC lds r17, OnInterval; 00000492 10 91 rjmp Label_049C; 00000496
1 and r16, r16; 000004A0 00 23 brne Label_0498; 000004A2 D1 F7 sbi PORTC, PORTC5; 000004A4; Setze Bit PORTC5 im PortRegister PORTC [/c] Was passiert in den Zeilen 492 - 4A2 ? Das kann doch nur eine Zeitschleife sein ? Aber der Footprint eines _delays_us() sieht in