-
Thread
ADC ATMEGA644 teilweise unplausible Werte
aktivieren und Interrupt > einschalten Wozu die Interrupts einschalten, wenn du den nicht nutzt? Das geht schief, vor allem, wenn dazu keine passende ISR besteht, dann macht dein AVR einen Reset. > > ADCSRA |= ((1<<ADPS1) | (1<<ADPS2)); > > _delay_ms(1); > > //warm-up des ADC >
<<PC2) | (1<<PC5) | (1<<PC6); [/c] Das macht natürlich keinen Sinn und muss natürlich [c] PORTC |= (1<<PC2) | (1<<PC5) | (1<<PC6); [/c] heißen. Mit dem korrigierten Eintrag ist der Offset auch nicht mehr vorhanden, die gemessenen Werte sind jetzt wie erwartet. Macht es denn wie hier Sinn
-
Thread
Python Uart einlesen und ausgeben
serial** ansehen: https://abyz.me.uk/rpi/pigpio/python.html falls es dir um die UART Behandlung geht. Um was es dir bei der Decodierung geht solltest du verständlicher beschreiben.
Maske, die zwischen 0 und 0xFF in der Timer-ISR gewechselt wird. Ob das so einfach in Python geht, weiß ich nicht. In C sind es ein paar Zeilen: [c] volatile uint8_t maske; // an PORTC sind die LEDs; Aufruf in der Endlosschleife der main() PORTC = datenbyte & maske; . .
-
Artikel
LED cube
Schnittkanten sind aber auch dann noch etwas rauh, man sollte sie daher polieren (lassen). Zuhause geht das mit etwas Schleifpapier (600, 1000) und Schleifpaste, alles aus dem Autozubehör. Alle Teile kann man dann zur Haube zusammenkleben. Um die Haube auf die Grundplatte schraubbar zu machen, klebt man
basiert auf einem ATMega32. Ein Schaltplan dafür ist hier zu finden: Schaltplan Controller Dabei ist PORTC für die Ebenen zuständig, PC0 ist unten, PC7 oben. PD0 bzw. Q0 sind die vorderen LEDs bis PD7 hinten. PA0 bzw. U9 ist dann die linke Reihe bis zu PA7 rechts. Teile dafuer: C1, C3: 22p C2: 10p C4: 100u
-
Thread
Digitalpoti, Dimensionierung Widerstandsarray 8bit 10-500Ohm
an Port C0 4Ohm an Port C1 8Ohm an Port C2 .. hänge funktioniert es nicht. Aber auch wenn ich Portc := XOR n; //na zählt von 0..255 mache funktioniert es nicht
> 4Ohm an Port C1 > 8Ohm an Port C2 > .. > hänge funktioniert es nicht. > Aber auch wenn ich Portc := XOR n; //na zählt von 0..255 > mache funktioniert es nicht ??? Was zum... willst du denn machen und wo kommt auf einmal PortC her? Die Schaltung von WIRO funktioniert nur mit niederohmigen
-
Thread
AT1284p Timer1_ISR und Compiler_Meldungen
aufgerufen - es kommen keine Zeichen über UART. Wenn ich das UDR0 = 'a'; in die while(1) schreibe gehts und wenn ich das VOR der while Schleife schreibe, kommen zyklisch zeichen. Auch wenn ich den Inhalt der while-Schleife in die ISR kopiere. >Hat dazu jemand eine Idee?
Screenshot gemacht, weil ich mir nicht sicher bin, ob die Information mit den roten Bubbles verloren geht. Die Meldungen stammen vom Rebuild All mit den unten genannten Änderungen. Ich hatte die Projekteinstellungen schon mit einem anderen Projekt mit dem selben Prozessortyp verglichen, wo ich die
-
Thread
ungewollte komische interne-Verspätung von dem Microcontroller ATMEGA32A
DDC2) | (0<<DDC1) | (1<<DDC0); // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=0 PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0); // Port D initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2
Gelbe Signal erreicht den LOW Pegel erst verzögert. Und die rote Linie (ich nehme an, das ist PORTC.0) folgt den Logik Pegeln prompt ohne sichtbare Verzögerung. In dem Moment wo das gelbe Signal den LOW Pegel erreicht, geht es auf HIGH. Und in dem Moment wo das gelbe Signal den HIGH Pegel erreicht
-
Thread
ATMega 8 LED mit Button schalten
Du schreibst nie auf PORTB, sondern immer auf DDRB. Das geht nur, wenn du PORTB einmal mit einer 1 auf dem LED Bit vorbesetzt. Es ist aber einfacher, PORTB zu beschreiben statt dem Richtungsregister. Sind übrigens nur 3 Blinks am Anfang.
Dir. Geht jetzt. Ich schnall das mit diesen ganzen Registern und Ports einfach nicht :-(
-
Thread
Atmega8 PORTD7 Problem
: cbi PORTD,7 ;PORTD,7 -> GND sbi DDRD,7 ;PORTD,7 als Ausgang GND cbi PORTC,5 ;PORTC,5 -> GND sbi DDRC,5 ;PORTC,5 als Ausgang GND @ Ben.B: Das Ganze befindet sich momentan noch auf dem Steckbrett. Danke für die Antworten
> cbi PORTD,7 ;PORTD,7 -> GND > sbi DDRD,7 ;PORTD,7 als Ausgang GND > cbi PORTC,5 ;PORTC,5 -> GND > sbi DDRC,5 ;PORTC,5 als Ausgang GND Kannst du mal erklären, was du damit genau veranstalten willst? Oliver
-
Thread
Arduino Timerprobleme - suche programmierbaren Oszillator
Komponente, mit der ich stabile Frequenzen im Bereich von > 1Hz bis 100Hz darstellen kann. Und das geht auf jeden Fall.
auch einfach mal sein lassen und den TO um eine gescheite Auskunft bitten. Wenn die nicht kommt, geht's halt nicht weiter.
-
Thread
3 Interrupts am Arduino Nano
uint8_t pulse_C_pin = 6; void setup() { ... cli(); //PCMSK2 |= 0b00100110; // D 2,3,6 geht, müsste aber falsch sein PCMSK2 |= 0b01001100; // D 2,3,6 geht, müsste aber falsch sein PCIFR |= bit(PCIF2); // clear any outstanding interrupts PCICR |= bit(PCIE2); // enable
volatile uint8_t hlw, hlr; #define HLI(hli) ((hli+1)%HLS) Hl hl; void hl_setup (void) { PORTC |= (1<<PORTC5); // Activate pullup hl.stat = HLSTAT; vhl.stat = hl.stat; } static inline void hl_tick () { // This is called in ISR context static uint8_t nlmod = 0; uint8_t hlstat
-
Thread
eigenen port aus einzelnen "Portpins" zusammensetzen
Meines Wissens geht das nicht direkt. Aber du kannst dir natürlich eine Funktion schreiben, die das aufdröselt und das übergebene Byte an PD0-PD5 und PC0-PC2 schreibt.
}; const uint8_t SEG_PC[] = { ... }; ... PORTA = (PORTA & ~SEG_PA_BITS) | SEG_PA[x]; PORTC = (PORTC & ~SEG_PC_BITS) | SEG_PC[x]; [/c]
-
Thread
Arduino inline ASM Fragen.
Es geht um folgenden code auf atmega328p der 7 WS2812 parallel ansteuert: [code] #define mask 0b01111111 #define ws2812_PORTREG PORTC #define ws2812_DDREG DDRC void ws2812_sendarray(uint8_t *data,uint16
Trulla O. schrieb im Beitrag #7040259: > Geht nicht. Aber mit 3 nop gehts. 🤩🤩🤩 Was dann ja auch deine Frage beantwortet, warum im Original st und nicht out verwendet wurde. Irgendwie muß man die Zyklen anscheinend verballern. Oliver
-
Thread
Arduino Micro Programm läuft nicht auf dem Mega
/Signalvergleich if (D[n] < val*S[m]) { //Dreiecksignal kleiner als Sinussignal bitSet(PORTC, 6); //Pin 5 HIGH } else { //Dreiecksignal größer als Sinussignal bitClear(PORTC, 6); //Pin 5 LOW } if (D[n] < val*S[m]) { //Dreiecksignal
Hallo Black D, beim Arduino Micro wird der Arduino-Pin D5 über PORTC6 angesteuert und der Arduino-Pin D6 über PORTD7. Beim Arduino Mega 2560 sind aber für den Arduino-Pin D5 PORTE3 und für D6 PORTH3 zuständig. Siehe die Dateien "pins_arduino.h" in den Ordnern C:\Program
-
Thread
Arduino Micro SPWM
Timer-Vergleichs-Interrupt } ISR(TIMER1_COMPA_vect){ // Interrupt if (D[n] < val*S[m]) { bitSet(PORTC, 6); // Pin 5 HIGH } else { bitClear(PORTC, 6); // Pin 5 LOW } if (D[n] < val*S[m]) { bitSet(PORTD, 7); // Pin 6 HIGH } else { bitClear(PORTD, 7); // Pin 6 LOW } n=n+1; if(n>15) n=0;
Sinus Positiv if (D[n] < val*Sinus) { //Dreiecksignal kleiner als Sinussignal bitSet(PORTC, 6); //Pin 5 HIGH bitSet(PORTD, 7); //Pin 6 HIGH } else { //Dreiecksignal größer als Sinussignal bitClear(PORTC, 6); //Pin
-
Thread
deprecated conversion
; void USART1_sendChar(char c); void USART1_sendString(char *str); void USART1_init(void) { PORTC.DIR &= ~PIN1_bm; PORTC.DIR |= PIN0_bm; USART1.BAUD = (uint16_t)USART1_BAUD_RATE(9600); USART1.CTRLB |= USART_TXEN_bm; } void USART1_sendChar(char c) { while (!(USART1.STATUS & USART_DREIF_bm
Allerdings wird hier strlen in jedem Durchlauf aufgerufen, d.h. super ineffizient. Viel besser geht es so: [c]void USART1_sendString(const char *str) { for(const char* p = str; *p != '\0'; ++p) { USART1_sendChar(*p); } }[/c] Weil es ja um AVR geht, wäre es natürlich noch besser den
-
Thread
1602 LCD mit ATmega8535 und Bascom läuft nicht
Tim D. schrieb im Beitrag #6989564: > Jetzt geht es > mit beiden Platinen auch mit Bascom Kinderfrage: Und warum?
LCD Display konfigurieren ' Config Lcdbus = 4 ' LCD 4 Bit Modus Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2 Config Lcd = 40x2 ' Display 40 Zeichen 4 Zeilen Cursor off Noblink CLS ' 'I2C konfigurieren ' $lib "i2c_twi.lbx
-
Thread
AVR SDK / API gesucht
PORTC2..5 wird von JTAG benutzt - ist das abgeschaltet?
S. Landolt schrieb im Beitrag #6979465: > PORTC2..5 wird von JTAG benutzt - ist das abgeschaltet? Nein, noch nicht. Danke für den Tipp, ich schaue mal nach, wie das geht
-
Thread
Wie viele Takte braucht diese ISR ca?
wieviele Takte die ISR ca braucht? [c] ISR(TIMER1_COMPA_vect) { cli(); Schrittzaehler++; PORTC &= ~(1<<PC1); // PWM-Ausgang if(sflags & (1<<rampe_aktiv)) // Solange eine Rampe gefahren wird { if(sflags & (1<<beschleunigungsrampe)) /
die gleiche Größe, womit du auch Fälle abfängst, in denen der Zähler innerhalb der ISR über Null geht. Wenn die ISR durch einen Timer getriggert wird, verwendest du aber am besten direkt diesen Timer. Irgendwo in der Main bildest du die Diffeenz und speicherst diese wieder in einer Variable. Die guckst
-
Thread
7 Segment Anzeige auf verschiedenen Ports
Oder liegt die erste sieben Segment an einem anderen Port als die Zweite? Das geht nicht hervor...
Pin A5 } } void led_taster2(int taster2) { if(taster2==1) { PORTC &= ~(1<<PC5); // Schaltet Pin PORTC |= (1<<PC6); // Schaltet Pin } else { PORTC |= (1<<PC5); // Schaltet Pin PORTC &= ~(1<<PC6); // Schaltet
-
Thread
40x4 LCD Modul Probleme
gibt das dann an den oberen controller weiter") Wenn ich "LCD_Command_TOP(0x38)" dazuschreibe geht es perfekt! Was lerne ich daraus: Datenblätter sind nicht perfekt und enthalten auch Fehler! Danke!
. Das > Ding dürfte nicht ohne Warnings compilieren. Was? Erste Zeile in den Funktionen: PORTC = i; Das ist nicht "nichts damit machen" ...
-
Thread
AVR-Studio/C: Wie überträgt man Variablen von einer Funktion in die andere?
main-Funktion uint8_t i = 2; i_verdoppeln (i); // Aufruf der i_verdoppeln-Funktion PORTC = i; // den Wert von i auf Port C ausgeben, hier i = 4 } return 0; [/c]
Debugger starten, Programmcode laufen lassen und solche Sachen. Aber Variablen übertragen, das geht nicht.
-
Thread
Brauche Hilfe AT Mega 8 im Raum Bremen evlt. vor Ort
Mach erst mal ein Programmablaufplan/PAP. Dann geht es weiter.
Das hier ist vom AT Mega 8 die Belegung (wenn das so geht) hoffe ich:
-
Thread
IR Empfänger mit Attiny85/45 funktioniert nie
Bootloader". Bei den Megas werden ja > neben dem Bootloader so auch die Fuses gesetzt. Richtig! So geht es.
Bitte aufwachen! Es geht um die Taktfrequenz des AVR und sein ISP Interface.
-
Thread
ATtiny series1 Unterschied PORTB.DIRSET PORTB.OUTSET
Zur Ergänzung: PORTC.DIR |= PIN6_bm; führt zum gleichen Ergebnis wie PORTC.DIRSET = PIN6_bm; nur das der Compiler das erstere in 3 Anweisungen (Read/Mod/Write) übersetzt, während unten nur 1 Anweisung (plus evtl.
zusätzliche Register wie zum DIRSET und DIRCLR. Bei diesen muss man keine Bits löschen, was auch nicht geht bzw. keinen Effekt hat. In diesen Registern kann man nur Bits setzen mit genau dem Ziel wie der Registername sagt SET oder CLEAR. Bei diesen gibts nur "positive Logik". Das wird dann intern automatisch
-
Thread
[ASM] AND von 2 Registern
/lds/ ist nicht /ldi/ (was auf r1 ohnehin nicht geht)
schrieb im Beitrag #6879854: > Nun bin ich am Optimieren meiner Zeilen Wenn es um Optimieren geht: Folgendes: [code] lds r1, 0b00000010 ; PORTB - PIN 1 lds r2, 0b00000100 ; PORTB - PIN 2 lds r3, 0b00001000 ; PORTB - PIN 3 lds r4, 0b00000001 ; PORTC - PIN 0 [/code] ersetzen mit:
-
Thread
2 Byte Variablen für 8Bit PIC aus und einlesen mit Pic-as oder mpasm-Assembler
das LSB ist zu diesem ; Zeitpunkt eh schon 0x00, fertig! [/c] Geht also alles ohne Carry. Wir brauchen andere Beispiele ;) Wenn Du noch Fragen hast, schau ich mir das gerne an.
Beitrag #6879178: > Der Dateianhang wurde bereits erfunden. ups,sorry ok gucke mal wie das hier geht!;o)
-
Thread
ATMega16 Dot Matrix Zähler
im Beitrag #6867364: > //Debug LED > PORTA |= (1<<PA7); Ich glaub das sollte bei dir auch PORTC heißen und nicht A.
1 = 00000010 2 = 00000100 3 = 00001000 4 = 00010000 5 = 00100000 Das geht ganz einfach: [c] PORTB = (1<<reihe); [/c] Ich bin nicht sicher welchen Port du für die Ansteuerung der Reihen verwenden willst. Deswegen habe ich einfach mal PORTB geschrieben. Mein Buch
-
Thread
Bascom: atmega8-16pu verhält sich anders als atmega8-8pu
bit2,bit1 as integer Config PortB.0 = Input ' Decimal or Hex Mode '8 Bit Data Input Config Portc.5 = Input Config Portc.4 = Input Config Portc.3 = Input Config Portc.2 = Input Config Portc.1 = Input Config Portc.0 = Input Config PortB.2 = Input Config PortB.1 = Input Config Portd
> den Atmega16 mittels rjmp ?-? Es geht um den ATmega8.
-
Thread
Stoppuhr Code Optimierung
= (1<<CS10); //Timer 1 TIMSK |= (1<<TOIE1); sei(); //Freigabe der Interrupts PORTC |= 0x1C; PORTD |= ~0xFB; while (1) { } } ISR(TIMER1_OVF_vect) { if (x2 == 1) { x1++; } if (x2 == 0) { x1 = 0; } if (x1 == 15/6) //Für
var = 0; digit++; if (digit > 4) { digit = 1; } } PORTC |= 0x1E; PORTC &= ~(1 << digit); PORTD = damn[counts[digit - 1]]; } ISR(INT0_vect) { PORTB ^= (1<<PB0); //Debug LED x2++; if (x2 == 2) { x2 = 0; } if (x2 == 1)
-
Thread
Countdown ATMega8
var = 0; digit++; if (digit > 4) { digit = 1; } } PORTC |= 0x1E; PORTC &= ~(1 << digit); PORTD = damn[counts[digit - 1]]; } [/c]
data[0] = zahl % 10; } // Multiplexansteuerung der Anzeige ISR(TIMER0_OVF_vect) { PORTC |= 0x1E; // alles aus digit++; if (digit > 3) digit = 0; PORTD = damn[data[digit]]; // Muster für neues Digit PORTC &= ~(1 << (digit+1)); // Digit einschalten }
-
Thread
Studio 4 und my-smart-USB-light
angeschlossen. Nach Definition von stack und den Ports lautet der Anfang meines Programms: sbi PORTC,4 ldi status,0 ;ist als r20 definiert sbi PORTC,1 nn: RJMP nn .... Im debug Mode läuft das Programm bis zum loop nn. Auf dem Chip leuchtet zwar die LED 4 auf, das Programm kommt
das Programm kommt aber nicht bis zu LED 1. Wenn du die Zeile "ldi status,0" auskommentierst, geht es dann? Wenn du die Zeilen "PORTC,4" und "PORTC,1" vertauschst, verscheibt sich dann der Fehler auf die andere LED oder ist es wieder LED 1 die dunkel bleibt? Nächstes mal bitte den ganzen Quelltext
-
Artikel
Plattformunabhängige Programmierung in C
int : Wenn ein long int 64 Bit breit ist (und ein int schmaler), wie es bei x64-Linux der Fall ist, geht der Aufruf schief. Aus diesem Grund gibt es in Makros mit den passenden printf() -Specifiern für C99-Datentypen. Sie beginnen mit PRI , gefolgt vom Format-Specifier und dem Namen des Datentyps: {| class
davon aus, dass die Funktion uart_getchar() immer ein gültiges Zeichen liefert und keins verloren geht. Ohne Type punning lassen sich die Daten folgendermaßen lesen und ausgeben: Ein 16-Bit-Wert wird jeweils aus zwei Bytes zusammengefügt. Durch das Verschieben um 8 Stellen nach links wird das zuerst
-
Thread
ATMega8 interner ADC
} } ISR (ADC_vect) { out(c); PORTB |= (1<<PB1); //Zur Kontrolle, ob er ins ISR geht ADCSRA |= (1<<ADSC); } void out (volatile uint16_t value) { PORTB ^= (1<<PB0); PORTD &= ~0xF0; PORTC &= ~0x3E; PORTD |= (uint8_t)((value >> 2) & 0xF0); PORTC |= (uint8_t)
Tomato schrieb im Beitrag #6804969: > c = ADCL; > c += (ADCH << 8); Kleiner Tipp, das geht auch einfacher: c = ADCW; oder c = ADC; Zu deinem Problem: schreib in der ADC-ISR PORTB |= (1<<PB0); //Zur Kontrolle, ob er ins ISR geht dann schaltet es auch den richtigen Pin :-) PB0
-
Thread
Ds18B20 Zeigt zu höhe Werte
Dieselbe Taktfrequenz ? Auf der einen Seite gibt es DS_PORT, auf der anderen PINC, ist DS_PORT auch PORTC, oder geändert ? (scheiss Definitionen).
selber erstellt, habe da keine gefunden. [c] // PIN #define DS_DDR DDRC #define DS_PORT PORTC #define DS_PIN 0 [/c]
-
Thread
Coundown Timer
ever { number_output (0); cli(); // switch off interrupts for blank display PORTC = 0b00001111; _delay_ms (500); sei(); _delay_ms (200); // switch on interrupts for 00:00 display } return 0; } [/c] hier LED_display.h [c] // 4 x 7 digit LED display
Michael H. schrieb im Beitrag #6801590: > PORTC &= ~(1 << pin); PORTC = ~(1<<pin);
-
Thread
"Gruppierung" von Pins
Beitrag #6777168: > Man kann keinen Pointer auf einen einzigen Pin zeigen lassen, korrekt? Das geht bei AVR Mikrocontrollern nicht.
{ &PORTB, 0x08 }, { &PORTB, 0x10 }, { &PORTB, 0x20 }, { &PORTB, 0x40 }, { &PORTC, 0x02 }, { &PORTC, 0x08 }, { &PORTC, 0x80 } }; #define PINS_COUNT (sizeof(pins) / sizeof(portpin_t)) static void pinout(portpin_t* pp, bool high) { if(high) { *(pp->port
-
Thread
AVR128DB mir 3-wire SPI
MOSI lässt sich beim AVR ja nicht als Open-Drain-Output konfigurieren. Bei anderen Architekturen geht das ja.
5 Volt kann, d.h. MOSFET und blauen (und einige grünen) LEDs ohne zusätzlichen IC. Und noch mehr: PORTC kann andere Spannung haben. Z.B. alles von 3 Volt (SD-Card, FRAM usw.), aber MAX7219 (unter 4 Volt will nicht arbeiten) mit 5 Volt über PORTC. Oder umgekehrt, alles von 5 Volt (oder gar von 2 Volt!
-
Thread
Was ist bzw. war Atmel QTouch?
war. Ja - und wie sah das genau aus (Code)? Andre schrieb im Beitrag #6980003: > Ergebnis: Geht nicht! Klar - nix gemacht , nix geht! Einer von vielen "Nicht-Intelligent-Schwätzern" :-)
Differenzmessung ist 160 bis 200, Schaltschwelle habe ich auf 50 bis 60 gesetzt. Nochmal 1 mm Acryl obendrauf geht aber so nicht, da muss man weiter dran drehen. Mit QTouch geht auch noch 3 bis 5 mm Acryl.
-
Thread
Atmel 328P (ArduinoNano) ANL AS DIGIN
DDRC = B00000000; // Analog 0-7 as input Nun kann man durch ein weiteres Set auf das Register PORTC= B11111111; Die Pull-Up Widerstände intern hinzuschalten ist das korrekt ? So das ich die ANL Eingänge auf GND ziehen kann, und sich so auch der Port-Bitzusatnd erfolgreich verändert. Oder
euch gegeben werden.... Was wird uns gegeben werden? Äh...vielleicht...ich weiß nicht genau...Das geht so nicht...es ist genau festgehalten, was uns gegeben werden soll...." Gruß Rainer
-
Thread
Wie macht man solche Lichtmodes? Lauflicht, PWM und Co
ein Board mit einem ATMega128A. Der ATMega erzeugt 32 PWM Kanäle. Der komplette PortA, PortB, PortC und PortE laufen als PWM. Ich habe dazu den Software PWM Code hier aus dem AVR-GCC Tutorial von 8 auf 32 CH geändert. Dieser läuft mit Timer1. Nachdem alle 32 PWMs funktionierten habe ich
PB4); PWM_PORTB &= ~(1<<PB5); PWM_PORTB &= ~(1<<PB6); PWM_PORTB &= ~(1<<PB7); PWM_PORTC &= ~(1<<PC0); PWM_PORTC &= ~(1<<PC1); PWM_PORTC &= ~(1<<PC2); PWM_PORTC &= ~(1<<PC3); PWM_PORTC &= ~(1<<PC4); PWM_PORTC &= ~(1<<PC5); PWM_PORTC &= ~(1<<PC6); PWM_PORTC &= ~(1<<
-
Thread
Serielles Protokoll testweise lesen
Sekunden messe ich dann nur noch einen konstanten Pegel. Ziehe ich die Verbindung zum RXD heraus, geht die Übertragung manchmal wieder korrekt los. Nach Reset ist alles wieder in Ordnung … so lange RXD nicht verbunden wird. Ideen? Gruß Erich
rechten Seite auch mal einen 100nF mit dazutun, schadet bestimmt nichts … Verhalten unverändert, Signal geht kaputt. c-hater schrieb im Beitrag #6718793: > Fuse-Settings. LF, HF, EF = 0xCF, 0xDF, 0xFF. Auch als Anhang. Gruß Erich
-
Thread
Warum geht das nicht ?
ist, denn dein LCD benutzt zufällig zwei Leitungen des JTAG Ports. Das (JTAG Enable und Port I/O) geht leider nicht zusammen.
denn > dein LCD benutzt zufällig zwei Leitungen des JTAG Ports. Das > (JTAG Enable und Port I/O) geht leider nicht zusammen. Danke das war das Problem, das hatte oben auch schon jemand geschrieben, aber so schnell bin ich nicht, Danke.
-
Thread
I2C-, USART-, EEPROM-Test für ein Feedback
USART_CHSIZE_8BIT_gc; USARTC0.CTRLC &= ~(USART_PMODE0_bm | USART_PMODE1_bm | USART_SBMODE_bm); PORTC.DIR = 0x08; } void sendChar_2(char c) { while( !(USARTC0_STATUS & USART_DREIF_bm) ); USARTC0_DATA = c; } void sendString_2(char *text) { while(*text) {
sein um die Library zu nutzen (or don't care). Einfache Nachkomma-Formatierung (z.B. 123.45) geht auch viel einfacher. (z.B. https://github.com/eepj/SHT2x_for_STM32_HAL/blob/master/sht2x_for_stm32_hal.c ) Gruesse Th. Edith zeigt auf github.com/eepj/sht2x_for_stm32_hal
-
Thread
avr asm LCD Problem
Initialisierungsroutine muss dann nochmal durchlaufen werden. Einfach Stecker raus und wieder rein geht bei LCD nach HD44780 Standard nicht. Oder es kommt zu zufällig noch im Speicher gebliebenen Inhalten. ciao gustav
ausgeschaltet ldi Daten, LCD_OFF rcall lcd_writecom rcall delay500ms ret [/avrasm] mehr geht nun wirklich nicht
-
Thread
Unterschied Arduino-PWM und Analog
Vorschriften/Vorgaben einhalten muss. Der Hobbybastler frägt sich zu den Weg schwer machen wenn es einfach geht. Der Gewerbliche schimpft den Maker aus, wenn die Vorgaben umbastelt werden. Also muss jeder da den Anspruch halt akzeptieren können.
. Natürlich ist der das! Aber das kann sich ja ändern. Immerhin hat er ja schon die Pins von PORTC gefunden. Also gib ihm bitte die Chance! Und verurteile nicht. Wie lange braucht ein Kind, zum laufen lernen, und dann bis es einen Marathon bestreiten kann. Sagst du da auch schon am dritten
-
Thread
Variable wird nach verlassen der PCINT ISR wieder auf vorherigen Wert gesetzt
BUZZER | COIL; DDRC = 0x00; DDRD = LED_REF | LED_CTRL; PORTC |= SETTINGBUTTON; PORTD |= MDI_DATA | MDI_CLK; init_peripheral(); sei(); while(1) { _delay_ms
Frage: Warum passiert das? Wenn du einen Interrupt einschaltest, aber keine ISR schreibst, dann geht der Sprung in die zugehörige ISR in Leere. Damit landet der Ablauf des Codes beim Resetvektor.