-
Thread
Atmega - Multiplex-Display-Ansteuerung fehlerhaft
um die Doppel-Zahl mit 10% Intensität zu > lösen. Dann bau doch mal einen Delay zwischen der PortD Umschaltung und dem Ausgeben auf PortB ein. Evtl sind die PortD Pins noch nicht stabil gesetzt. /regards
. Das hat bei dir 3 Ursachen: 1) Du schaltest auf das andere Segment um, bevor dessen Wert auf Port B ausgegeben wird. Lösung: Schalte zuerst beide Segmente aus, gebe dann den Wert auf Port B aus, schalte dann das richtige Segment ein. 2) Der Effekt 1 wird durch die zeitaufwändige Division verstärkt
-
Thread
Grundsatzfrage zum Bustransfer
nacheinander > abarbeiten (also Interrupt abschalten, eine Schnittstelle abfragen, > Antwort einlesen und Interrupt wieder anschalten)? Nein. Typisch hat man für RS485, CAN und Ethernet usw. einen Controller im MC, der die Daten puffert. Z.B. bei der UART im AVR werden bis zu 3 Bytes gepuffert
nacheinander >> abarbeiten (also Interrupt abschalten, eine Schnittstelle abfragen, >> Antwort einlesen und Interrupt wieder anschalten)? > > Nein. > Typisch hat man für RS485, CAN und Ethernet usw. einen Controller im MC, > der die Daten puffert. > Z.B. bei der UART im AVR werden bis zu 3 Bytes
-
Thread
Anfänger-Entwicklung einer Gärbox Steuerung
ist leicht zu verstehen und erzeugt kompakten Code. Die Initialisierungsroutine vom seriellen Port würde die Config etwa so bekommen: [pre] serialPort = new Uart(settings.UartConfig) [/pre] Das geht in jeder Programmiersprache so ähnlich.
, ich liebe PeDas 10ms Entprellroutine bullet proof und nutze die überall wo sie gebraucht wird -> AVR und ESP32
-
Thread
alte Turbo-C-Software unter win95 neu für WIN10.
Simples HTML-File mit Buttons und Javascript? [c] const port = await navigator.serial.requestPort(); await port.open({ baudRate: 9600 }); ... <button onclick="sendCommand(1,'ABC123xxx')">Command 1</button> [/c]
Hans schrieb im Beitrag #7653233: > Also bei der COM-Port Komponente von Delphi, mußte ich noch nie > irgendwelche Klimmzüge machen. Da funktionieren i.d.R. alle seriellen > Ports die unter Windows angezeigt werden problemlos. Benutzt aber auch nur
-
Thread
AVRs mit USB?
Was genau ist an ATMega*U veraltet? Sind doch noch in Produktion... Ansonsten gäbe es noch die AVR*DU, z.B. den AVR16DU14, der ist so brandneu, denn gibts noch nicht mal zu kaufen. Aus dieser Reihe sind bis dato nur der AVR64DU28 und AVR64DU32 verfügbar
trotzdem noch auf eine simplere Umsetzung. Das Anstecken meines Controllers soll einen virtuellen COM-Port zum Datenaustausch bereitstellen- mehr brauchts nicht. Es hilft auch wenig, wenn die begrenzten Ressourcen eines AVR bereits zum guten Teil durch das USB-Handling belegt würden.
-
Thread
DCC Singal auslesen
Lothar M. schrieb im Beitrag #7648690: > Er will ihn nicht "nutzen". Er will verstehen, wie das Einlesen des DCC > Bitstroms funktioniert. Das verstehen geht aber besser wenn er den Monitor aufbaut, Programm rein und dann alles nachvollzieht. Das sich das wichtigste in der NmraDcc abspielt habe
Nun ja, wenn's AVR sein soll ... Ist schon über 20 Jahre alt, den AT90S1200 gibt's nicht mehr, aber prinzipiell sollte das leicht auf einen neueren Typ zu portieren sein. Die eigentliche Dekodierlogik steckt fast ausschließlich
-
Thread
LM3914 propagation delay?
andauernde Analogspannung zu erfassen, (in 10 Stufen reichts) indem ich die LEDs-Ausgänge mit µC Ports einlese. Datenblatt sagt nichts über Input-Outputs propagation delay, hat jemand schon ausprobiert? (Dass es open collectors sind weiss ich, und ich weiss wie ich sie in µC Ports reinkriege, das ist
andauernde > Analogspannung zu erfassen, (in 10 Stufen reichts) indem ich die > LEDs-Ausgänge mit µC Ports einlese. Ziemlich unwirtschaftlich: 10 Portleitungen, wo für BCD = binary coded decimal vier Leitungen genügen würden.
-
Thread
7 Segment Anzeige auslesen / MCP23017
, 0, 0, 0, 7, 1, 0, 0}; anzeigewert = seg2int[port_einlesen() & 0x1f]; // Eingangsvektor als Index nehmen [/c] Bei r und c wird der Wert 99 zurückgegeben. > um Bauteile für 1€ zu sparen. Man gewinnt nichts, wenn man 7 Segmente nimmt und den 1
Besser ist das, anstatt zu raten, wie oft man abfragen muß. Und vor allem: wann man die Segmente einlesen muss.
-
Thread
Hilfe 3. ESP kaputt, MOSFET Schaltung
der 24V aushält? Z.B. der hier kann das nicht: https://www.mediamarkt.de/de/product/_imoshion-2-port-usb-c-usb-kfz-schnellladegerat-universeel-schwarz-136353063.html
es gut funktioniert und dann auch wieder nicht. Wie vorgeschlagen, mal zwei Widerstände an den Ports probieren?
-
Thread
AVR (AT90USB162) - Sleep Mode und PCINT
long #endif // Include guards //#include <stdint.h> // Integer variable #include <avr/io.h> // I/O ports #include <util/delay.h> // Delay function #include <avr/sleep.h> // Sleep mode #include <avr/interrupt.h> // Interrupt implemention //#include <avr/wdt.h> // Watchdog
interrupt wake up * 2024 * */ #include <stdint.h> // Integer variable #include <avr/io.h> // I/O ports #include <util/delay.h> // Delay function #include <avr/sleep.h> // Sleep mode #include <avr/interrupt.h> // Interrupt implemention #include <avr/wdt.h> // Watchdog
-
Thread
Induktiver Positionssensor - Fragen dazu
den Stromsensoren > durch Brücken einstellbar. Die Adressen sind unkritisch. Deine "SSD1306AsciiAvrI2c.h" steuert I2C, während ADS und INA auf die wire.h aufsetzen. Die werden sich nicht vertragen, konkurrieren um die selben zwei Ports.
475574327359 Manfred P. schrieb im Beitrag #7640196: > Die Adressen sind unkritisch. Deine "SSD1306AsciiAvrI2c.h" steuert I2C, > während ADS und INA auf die wire.h aufsetzen. Die werden sich nicht > vertragen, konkurrieren um die selben zwei Ports. Ich stehe da noch ganz am Anfang. Wie ich schon weiter
-
Thread
Raspi Pi Pico schnell genug um 4Mhz Z80 zu sniffen?
. 2x50mA je Richtung? 2x 50mA ist bei den SoC schon mal falsch, maximal 50mA in Summe über die Ports nach + oder -. Den SoC fehlt die typische Schutzschaltung der AVR Arduino mit Dioden und Widerstand zur Strombegrenzung. Seit dem ersten Raspi wurde als sicher empfunden die 50mA durch alle Ports
bei den alten 8-bit AVR x-mal gezeigt. Da funktionierte sogar Rück-Speisung über die Ports solange die Schutzdioden nicht übermäßig gefordert werden. Timer für Canon Cam an der FB Buchse, nicht von mir aber trotzdem genial
-
Artikel
Entprellung
einzelnen Instruktionen alle 8 möglichen Kombinationen der 3 Signale dargestellt. Beispielcode für AVR (Assembler): Komfortroutine (C für AVR). Siehe dazu: Forumsbeitrag Universelle Tastenabfrage. Anmerkung: Wenn statt active-low (Ruhezustand high) active-high (Ruhezustand low) verwendet wird, muss eine
kurzem oder langem Drücken Wiederholfunktion, z. B. für die Eingabe von Werten Das Programm ist für avr-gcc/avr-libc geschrieben, kann aber mit ein paar Anpassungen auch mit anderen Compilern und Mikrocontrollern verwendet werden. Eine Portierung für den AT91SAM7 findet man hier (aus dem Projekt ARM MP3
-
Thread
Attiny85 ADC Eingangswiderstand - wie hoch
der eigenen VCC. Die Bandgap ist sehr hochohmig angeschlossen, so daß ein Delay notwendig ist. In AVR-Freaks gabs dazu mal eine Diskussion.
'Init_IO_Ports ... PORTB |= (1 << ADC3_Pin2) ... pull up' Ein interner Pullup an einem ADC-Eingang?
-
Thread
ESP8266 PWM Pin4
Peripheral Interface" Da steht nur, dass er vier PWMs erzeugen kann, aber nicht, dass sie auch einlesen kann. Der hat vermutlich schon mit dem WLAN-Gedöns genug um die Ohren. Man könnte einen AVR (oder ähnliches) nehmen, mit dem die PWN per Input-Capture-Unit messen und dann UART, I²C oder SPI an
steige ich noch auf einen teurere Hardware um... Oder auf billigere. Das ganze PWM erzeugen&einlesen macht ein kleiner AVR problemlos, und kann auch per UART/I²C/SPI mit dem ESP kommunizieren...
-
Thread
benötige Hex-Datei für PIC16F628A
Mikrosekunde gleich bedient werden. Wer fordert das? Ich habe keinen PIC-Compiler. Auf einem AVR (ATtiny261) könnte das komplette Programm so aussehen. [c] #include <avr\io.h> int main(void) { DDRA = 0xFF; // Port A = 8 Outputs uint8_t mask = 0b10000000; do {
Und wie soll der TE den AVR mit seinem PICKIT-3 brennen?
-
Thread
Welchen Compiler/IDE benutzt ihr für uController?
QtCreator + gcc + makefiles für ARM und AVR
/fpc/source/-/blob/main/compiler/avr/cpuinfo.pas?ref_type=heads#L58
-
Thread
Speichererweiterung für BigData bei Microprozessoren
Die Überlegung war folgende: Die Prozessor-Moduleinheit hat 10 PortPins (weitere 6 sind vorhanden, aber belegt). Geschrieben wird in 8-Bit Worten, ich könnte es mit Maskierung nutzen, um nur die 2 Bits des unteren Wortes zu verwenden, wenn ich die alten 6 Bit lade und
, den du über deinen "Datenbus" mit Informationen versorgst, super toll erledigen. Ich würde einen AVR und eine SD Karte und das Filesystem von Elm Chan nehmen und hätte die Speichererweiterung mprgen früh zusammengefädelt: - https://www.kampis-elektroecke.de/2019/05/avr-mit-einer-sd-karte-erweitern-teil
-
Thread
Drehgeber und Tastenentprellung für Arduino
"/" statt "\\" * xxxPinRegister.h: es fehlt: #include <stdint.h> * xxxPin.h: es fehlt #include <avr/io.h> * self-contained header files (s.o.) * DA-Series: PORT_INLVL_bm nicht vorhanden * C-Declaration: z.B. updateEncoder(void) * fehlende Deklaration: updateEncoder(void) Aber das war jetzt
statt "\\" > * xxxPinRegister.h: es fehlt: #include <stdint.h> > * xxxPin.h: es fehlt #include <avr/io.h> > * self-contained header files (s.o.) > * DA-Series: PORT_INLVL_bm nicht vorhanden > * C-Declaration: z.B. updateEncoder(void) > * fehlende Deklaration: updateEncoder(void) Wenn die Zeile
-
Thread
LED CUBE selberbauen
125 LED denn zusammen geschaltet? Suche nach "Charlieplexing". https://www.elektronik-labor.de/AVR/Charlieplexing.html Damit brauchst du zum Ansteuern von bis zu 11 x 12 = 132 LED insgesamt 12 IO Ports. > Für mein projekt verwende ich 5 Transistoren (bd241), und die 74HC595. Aha. Und was
und 11.2. Für die Verkettung findest du dort ein Beispiel https://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister#Kaskadieren_von_Schieberegistern
-
Thread
Aktuelle 8051-Clone - so kompatibel wie möglich
Latches, Buffer und Timer) am Daten- und decodierten Adressbus. Dass diese Alternativfunktion der Ports mit dem klassischen '373/'573 am gemultiplexten Bus weiterhin funktioniert ist also unerlässlich. Schneller als das Original muss er auf jeden Fall sein, da ich eine interruptbasierte serielle Schnittstelle
der DS80C320 aktuell war, mal einige Schaltungen re-designed, seitdem habe ich eigentlich nur noch AVR und ARM benutzt. Bei der Zielanwendung ist aber so viel trickreich in MCS51 Code gelöst und es muss nur so wenig ergänzt werden, dass der Aufriss, ein AVR- und ARM-Board in den 8051 Sockel zu adaptieren
-
Thread
Port-Expander mit Logikbausteinen
werden sie nur noch vom Prozessor per UART/I2C/SPI oder über einen parallelen Port angesteuert.
Manni T. schrieb im Beitrag #7464301: > Port-Expander mit Logikbausteinen wie PLDs Warum? I²C Port Expander, SPI Port Expander, Serielle Shift Register mit Parallel out am SPI. Es gibt zahllose Möglichkeiten bei denen die MCU kaum mehr als
-
Thread
I2C-Bus: SDA und SCL an ATMEGA328p
SDA-Pin als auch der SCL-Pin jeweils als Ausgang und als Eingang verwendet. Kann ich dazu z.B. die Port-Pins PD.2 und PD.3 verwenden? Wenn diese als Ausgänge konfiguriert werden, sollte dann trotzdem das Einlesen der Eingangspegel an den Pins mit den folgenden Makros funktionieren? [c] #define I2C_SDA_PIN
Beitrag #7442415: > ich habe eine Frage zur Verwendung des I2C-Bus mit einem ATMEGA328p Der konkrete AVR hat eine TWI Einheit in Hardware. Wieso willst du das in Software erledigen? Wo ist deine Notlage, die dich dazu zwingt? Zudem: Rainer G. schrieb im Beitrag #7442415: > void Port_Init (void
-
Thread
STM32 counter up/down mit Step/Dir Signalen
Mi N. schrieb im Beitrag #7426100: > Oder anstatt diskreter Logik ein 8-pol. AVR zur Umsetzung Step/Dir -> > PhaseA/PhaseB verwenden und dann auf die STM-Timer geben. Genau so hab ich es vor wenn es keine interne Möglichkeit im STM32 gibt. Die AVR's in Assembler für die Wandlung
, geht im AVR zuverlässig. over/underrun der 3 16bit counter muss ich noch weiter testen.
-
Thread
Welche 8-Bit-Architekturen werden in 10 Jahren relevant sein? Gesperrt
ist, woran gemessen etc... Meines Wissens ist AVR eine µC-Familie, die eine eigene, und (abgesehen von den üblichen kleinen Unterschieden) einheitliche Architektur aufweist, und die Architektur wird üblicherweise ebenfalls als AVR oder avr bezeichnet
kleinen Unterschiede" innerhalb einer > Architektur. Naja, als ich persönlich code aus einem AVR-Projekt ca 2001 auf einem damals Aktuellen AVR-Type umsetzen wollte, lief das auf eine quasi Neuprogrammierung raus, weil fast jede zweite Zeile angemeckert wurde, da Steuerregister inzwischen über
-
Thread
Suche Programmgerüst: USB-Kommunikation und Daten Ein/Ausgabe Windows
nichts programmieren. Ein simples Terminal wie TeraTerm reicht erst mal. Damit kannst du einen COM Port aufmachen, und mit deinem AVR reden. Wenn das läuft, dann machst du ein simples Konsolenprogramm in C. Dafür nimmst du unter Windows am besten den Visual Studio Compiler. Die Hilfe behandelt die
.PortName = cmbPort.Items[cmbPort.SelectedIndex].ToString(); serialPort1.BaudRate = 9600; serialPort1.DataBits = 8; serialPort1.Parity = Parity.None; serialPort1.StopBits = StopBits.One; serialPort1
-
Thread
Altes EPROM auslesen Intersil 6654A (2xCE) mit Arduino
Portzugriff durchführen würdest (was voraussetzt, daß Du Data_D0_pin bis Data_D7_pin auf einen der Ports des AVR legst, und zwar in der richtigen Reihenfolge), dann würde die Funktion ReadDataValue() in sich zusammenfallen zu einem > dataVaue = PINB; (wenn der verwendete Port zufälligerweise Port
anfangend, hochzählen. Wenn man genugt Ports zur Verfügung hat, kann man die Daten dann an einem anderen Port einlesen, im SRAM zwischenspeichern und blockweise auf der UART ausgeben. Wenn man nur wenige Portpins zur Verfügung hat, kann man den
-
Thread
Mit dem ATMEL STUDIO 7 klarkommen Gesperrt
erst später zeigen, falls man es dem AVR-GCC-Compiler überhaupt beibringen kann Arbeitsregister ( GPR r0 bis r31 ) anstelle von SRAM zu verwenden. [c] i = key_state ^ ~KEY_PIN [/c] AVR8ASM [avrasm] in i,PINE com i eor i,key_state
Weil das Atmel Studio zu komplex ist, benutze doch einfach das ältere AVR Studio! http://stefanfrings.de/avr_tools/index.html#avrstudio Oder noch einfacher, die Arduino IDE: https://docs.arduino.cc/software/ide-v1/tutorials/Windows Wie man damit Assembler Listings
-
Thread
Tasterverarbeitung mit ARDUINO-C
könnte, dann hab ich ja viel zu tun. Es ist ein ATmega 2560-Board. Müsste dies nicht in der <avr/io.h> stehen ? Und warum tauchen diese dann nicht im Verzeichnis -> include auf ? (siehe Screenshot) [c] #include <Arduino.h> #include <stdint.h> #include <avr/io.h> #include <avr/interrupt.h
Seite die Vektoren für AVR-Series-0, -1 und -2 nicht mitgelistet sind.
-
Thread
Arduino hängt sich auf - Relais und I2C Kommunikation
der AVR Ausgänge dürfte in der selben Größenordnung liegen wie der Spulenwiderstand von 125 Ohm. Da dürfte dann beim Schalten an die 50% der AVR Versorgungsspannung in der AVR Pin Ausgangsstufe abfallen ( also
www.mouser.ca/datasheet/2/307/en_g6a-1148492.pdf Ich sehe keine (wirklichen) Probleme mit Direkt Port Betrieb des Relais. Nur wäre das 6V Modell günstiger gewesen, weil dann der Pin Strom vom AVR nur noch 22mA betragen würde (R[L] = 25 Ohm + 200 Ohm). Noch günstiger wäre der P-Kanal MOSFET Schalter
-
Thread
Zeigt her eure Kunstwerke (ab 2023)
50MHz > - AVR Gewittermonitor (oben links die Antenne dazu) > - Signalverfolger / -Injektor > - AVR Chipbasic Computer > - TinyBasic Computer > - Und ein China-Scope > > Alles keine Profigeräte aber dafür
der Empfänger funktioniert. Der ATMEGA32 steuert und verarbeitet den Rest. Der Steuert über seine PORTs die STBY-Freischaltung, I²C für PCF8574 und MSP3400C, der CBUS den SAA1061 vom Display, zusammen mit dem Kontrastpoti am Bedienteil die LED-Helligkeitsregelung und das Einlesen der Tasten und Schalter
-
Thread
Matrix mit 5x Rotary Encoder für STM32 uC
IOs gespart? 5 Encoder sind 15 Eingangssignale, die man problemlos mit 2x8 Bit Schieberegistern einlesen kann. Dazu braucht es gerade mal drei IOs. Deine Matrix braucht 8.
Schieberegister in Variablen ein und wertest dann deren Inhalt so aus, als wären es Input-Register von Ports.
-
Artikel
AVR-Tutorial: IO-Grundlagen
PB5? Der Grund ist einfach: Am Gehäuse des AT90S4433 gibt es nicht genug Pins für den kompletten Port B, deshalb existieren die beiden obersten Bits nur intern. Eingabe. Im folgenden Programm wird Port B als Ausgang und Port D als Eingang verwendet: Download leds+buttons.asm Wenn der Port D als Eingang
versuchen würde, den Pin auf GND zu ziehen. Ein Pullup-Widerstand an einem Eingangspin wird durch das PORT-Register gesteuert. Das PORT-Register erfüllt also zwei Aufgaben. Bei einem auf Ausgang geschalteten Port steuert es den Pegel an den Ausgangspins. Bei einem auf Eingang geschalteten Port steuert es
-
Thread
Serial Communiction uint8_t* Arduino
Ob char selbst wiederum signed oder unsigned ist, ist nicht festgelegt So ist es, wenn ich meinen AVR-GCC frage, dann antwortet er auf beide Fragen is_signed() is_unsigned() mit false
einen Logikanalyzer an den UART klemmen und gucken, was da gesendet wird. Notfalls den seriellen Port vom PC. Sonst ist das bloß blindes Stochern im Nebel. Oh, und zuallererst würde ich das "é" durch ein "e" ersetzen.
-
Artikel
AVR-Tutorial: Schieberegister
Regime zum Ausgeben und Einlesen in einem Rutsch: Low-Nadel an ¬L (zum Laden der '165-Flipflops; die '595-Ausgänge verändern sich nicht) 8 · 3 = 24 Schiebetakte (auch zum Nur-Einlesen müssen die Ausgabedaten wiederholt ausgegeben
: 48-I/O-Porterweiterung mit Schieberegistern 74HC595 und 74HC165 Weblinks. Atmel Application Note AVR151: Setup and use of the SPI datasheetcatalog.com: 74HC595 Roboternetz: Portexpander am AVR Interactive 595 Shift Register Simulator ----
-
Thread
seriell FTDI TTL UART SUART ich blicke nicht mehr Durch!
Hallo, das wären meine 3 Grundfunktionen. [c] #include "myToolbox.h" uint8_t relaisPort; // Port Zustand irgendwo Lib intern gespeichert void portBitSet (const uint8_t pos) { relaisPort = relaisPort | _BV(pos); } void portBitDel (const uint8_t pos) { relaisPort = relaisPort
(relaisPort); relaisPort.soll = 0b00000110; ausgabe(relaisPort); relaisPort.soll = 0b01100000; ausgabe(relaisPort); relaisPort.soll = 0b01100000; // nochmal ob es unverändert bleibt
-
Thread
Viele Kippwaagen, wie zählen?
seinen Zustand hält bis der entspr. Port zurückgesetzt wird. An die Ports des MCP kannst du die Reedschalter deiner Kippwaagen anschließen.
der MCP seinen Zustand hält bis > der entspr. Port zurückgesetzt wird. Ja und wenn nach einem erkannten Flankenwechsel an einem Port ein weiterer Zählimpuls auf einem anderen Port kommt und ich noch nicht abgefragt habe? Wie ist das wenn an mehreren
-
Thread
MOSFET ohne Widerstand direkt am µC-Ausgangspin schalten?
softwaremäßig Low-Pegel dennoch auf High zu bringen. Bei den PIC war das möglich, wenn man einen Port-Pin modifiziert hat. Bei AVR und 8051 wird dagegen bei Read-Modify-Write immer das Ausgangslatch rückgelesen. Du kannst zwar mit genügend Strom einen anderen Pegel aufzwingen und auf Port-Pins schreiben, nach Wegnahme geht alle Pins des Ports jedoch wieder auf den Pegel, den man per Befehl gesetzt hat. Und die Sonderfunktionen (PWM) benutzen separate Ausgangslatches. Um beim AVR den Pegel von außen zu ändern, muß man das Read-Modify-Write
-
Thread
Fragen zu Mikrocontroller
(wann läuft die Pumpe wie) auf Papier aufschreiben * Hardware beschaffen und zusammenbauen * Einlesen der Sensorwerte und Ansteuern der Pumpe auf dem Arduino umsetzen * Regelalgorithmus auf dem Arduino umsetzen * Daten auf einer seriellen Schnittstelle rausgeben * Auf einem ESP32 o.ä. das oben
hier steht eigentlich alles für einen Anfänger https://www.mikrocontroller.net/articles/AVR_Tutorial
-
Thread
Interrupt mit ATTiny 2313A
Der ATtiny 2313 A hat keinen PCINT0_vect. Schau selbst: https://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html Du wolltest wohl PCINT_vect verwenden. Was mich aber total irritiert ist, dass du dein Programm so überhaupt compiliert bekommst. Denn der ATtiny 2313
/* Pin Change Interrupt Request 2 */ [/c] Das passt nicht zur Doku auf https://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html die ich für meine vorherige Antworte konsultiert hatte. Offenbar gab es den ATtiny2313 A noch nicht, als diese Doku geschrieben wurde. Weiterhin finde
-
Thread
Input nicht lesbar, wenn keine 1 im Datenregister liegt
Eigentlich solltest du alle als Ausgang definieren, denn dann floaten sie nicht - egal was du auf PortB schreibst. Sie bewegen sich dann aber alle. - PORTD = 0x0C; Da der Port im Defaultzustand auf Input steht, aktivierst du den Pullup an den beiden Pins. Die anderen Pins des PORTD sind wieder offene
eines der ersten, die du dir sicher aneignen solltest. Dazu gibt es auch ein schönes Kapitel im [[AVR-GCC-Tutorial#Zugriff_auf_IO-Ports]], was ich dir wärmstens empfehle!
-
Artikel
DCF77-Funkwecker mit AVR
geringfügige Beschaltung notwendig. Alternativ kann man auch die internen Pull-Up Widerstände des AVR nutzen. DCF77-Modul von Reichelt. Vorsicht! Das DCF-Modul von Reichelt hat einen sehr schwachen Push-Pull-Ausgang. Der liefert nur +/-5 µA (MIKRO-Ampere) und ist damit sogar zu schwach, einen Pull-Up vom AVR sauber auf GND zu ziehen (typ. 50 k ). Dieses Modul muss direkt an einen CMOS-Eingang ohne Pull-Ups und sonstige Beschaltung angeschlossen werden. Weiterhin ist zu beachten, dass das Modul relativ empfindlich
-
Thread
AVR- C: Welche einfachen Projekte für den "Einstieg"?
ist, dass man den PORT-Block im Powermanager in Betrieb nehmen muss – beim AVR sind standardmäßig alle Blöcke eingeschaltet, und man muss einzeln ausschalten, was man nicht braucht, um Energie zu sparen.
im Beitrag #7201585: > Das wirklich einzige, was sich nennenswert vom AVR unterscheidet ist, > dass man den PORT-Block im Powermanager in Betrieb nehmen muss – beim > AVR sind standardmäßig alle Blöcke eingeschaltet Der Teufel liegt eben in den zahlreichen Details.
-
Thread
SPI mit Attiny 841 und MCP23S17
MCP23S17 erfolgt keine Anzeige. [c] #define F_CPU 16000000UL #include "util/delay.h" #include "avr/io.h" // Attiny 841 ATtiny841 old Atmega48 #define SPI_DDR DDRA // DDRA DDRB #define SPI_PORT PORTA // PORTA PortB #define SCK
alten Problem und muss erst mal meine "alte" Software zum laufen bekommen. Danach soll aber das einlesen von Ports kommen um den MCP23S17 besser zu verstehen.
-
Thread
32 Bit MCU gesucht
MHz ein großer Sprung, auch wenn so ein ARM für gleiche Aufgaben ein paar mehr Takte braucht, als AVR. Außerdem hat der TO geschrieben, dass er keine FPU braucht.
Also wenn man auf einem C64 Fraktale berechnet hat, dann ein AVR auch einen poopligen Taupunkt berechnen: https://www.stefanbion.de/fraktal-generator/history.htm
-
Thread
Schieberegister ersetzen
zum 1Mbit/s auch ein SYNCHRONER Takt existiert. Damit man das mit einem kleinen Mikrocontroller ala AVR verarbeiten kann, braucht er ein wenig Hilfe, denn die 1Mbit/s mit EXTERNEM Takt LÜCKENLOS einlesen ist schwierig bis unmöglich. Später kam von dir die Aussage, daß der Takt ASYNCHRON zum Datenstrom
avr schrieb im Beitrag #7140366: > Falk B. schrieb: >> denn die 1Mbit/s mit EXTERNEM Takt LÜCKENLOS einlesen ist schwierig bis >> unmöglich. > > In C würde ich zustimmen, in Assembler ist es einfach
-
Thread
Vier PWM über eine Signalleitung
doch für Dich sicher ein Kinderspiel. > Danke. Voraussetzung: gleicher µC, gleicher Quartz, ein Port A mit 8 Bit, wovon die ersten 4 vom µC an die Gegenstelle gesendet werden und umgekehrt. Quasi Bidirektional jeweils 4 Bit. Register/Framework: * trisA: (wr-only) 1=input, 0=output * portA
nibble output, lower = input */ uart_init(); for(;;) { if(tx_flg) {reg_tx = portA | 0xf0;} if(rx_flg) {portA = reg_rx << 4;} } } [/c] Da die high-bits 1 sind, gibt es kein Synchronisierungsproblem des Uarts. (Edit: Dass es genau 10 sind ist Zufall. Und ja,