-
Thread
AVR - Schleifen/Delay
10111111 = 11111111). Ein Bit unabhängig von seinem Ausgangswert umschalten geht mit Exklusiv-Oder. Der AVR-Assembler-Befehl dafür ist eor.
def temp = r15 ;temporäres Register ldi beep, $40 ;bit 6 gesetzt ;...irgendwas in temp, portd ;Port D einlesen eor temp, beep ;Bit 6 toggeln out portd, temp ;Port D ausgeben Gruß Johnny
-
Thread
Pony unter Linux
Moin, ein Büchlein kaufen und sich in die Materie einlesen ist nie verkehrt. Ein ganz brauchbares und sogar in Teutsch und z.Zt. online verfügbar ist z.B. folgendes: http://www.oreilly.de/german/freebooks/rlinux3ger/linux_wegIVZ.html Außerdem www.tldp.org
/dev/parport0 Und schon war parallel Port für alle Benutzer zugänglch.
-
Thread
frage zu programm
abgebrochen werden und alle Leds erlöschen. hier mein programm (die tasterentprellung hab ich aus dem AVR tutorial): [c] #include <avr/io.h> #include <util/delay.h> uint8_t Taster0; uint8_t Taster1; void long_delay(uint16_t ms) { for(;ms>0; ms--) { _delay_ms(1); } } inline uint8_t debounce(volatile uint8_t *port, uint8_t pin) { if ( ! (*port & (1 << pin)) ) { /* Pin wurde auf Masse gezogen, 100ms warten */ _delay_ms(50); // max. 262.1 ms / F_CPU in MHz _delay_ms(50);
-
Thread
Probleme mit neuer USART-Konfiguration
**********************************************/ // Einbindung von Standardbibliotheken #include <avr/io.h> #include <avr/interrupt.h> #include <string.h> /*******************************************************************************************************/ // Definition der Baudrate #define
************************************************/ #define RELAIS_ON_DDR DDRD #define RELAIS_ON_PORT PORTD #define RELAIS_ON 7 #define RELAIS_OFF_DDR DDRB #define RELAIS_OFF_PORT PORTB #define RELAIS_OFF 0 #define PWM1_DDR DDRB #define PWM1_PORT PORTB #define PWM1 1 /*
-
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
LED Programm
[c] // Target: ATmega16 #define F_CPU 1e6 #include <avr/io.h> #include <util/delay.h> #define debounce( port, pin ) \ ({ \ static uint8
ich PonyProg2000 Und hier das Programm #include <avr/io.h> #include <avr/iom8.h> #include <avr/interrupt.h> #ifndef F_CPU #warning "F_CPU nicht definiert!!!" #define F_CPU 12000000UL #endif int i,a,b,erg; ISR (TIMER0_OVF_vect) { PORTD
-
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
Suche einen kleinstmöglichen 4 to 1 mux
Wenn du einen Controller mit ADC hast kannst du die 3 Tasten auch mit einem ADC Eingang einlesen. Ansonsten TSSOP Gehauese nehmen, das ist klein. Oder im Multiplex abfragen PUP -O-----O----+------ Port 1 | | | | PUP -O-----O----+----- Port 2 | |
Normale Ports am AVR haben einen zuschaltbaren Pullup widerstand. Ich werd mal diesen verwenden ausser es spricht etwas dagegen.Also taste nach GND und denn internen Pullup konfigurieren. Sonst, Pullups ohne weiteren
-
Thread
Atmega8 als Servo Switch
80 81 ld r24, Z cc: 8b bb out 0x1b, r24 ; 27 besteht. [C] #include <avr/io.h> #include <avr/interrupt.h> #define SERVOPORT PORTA unsigned char Daten[200]; unsigned int ServoUp; ISR( TIMER1_COMPA_vect ) { ServoUp++; if ( ServoUp == 1000U ) {
ganz gemütlich Stück für Stück machen. |-|__________ Servo1 ___|-|________ Servo2 usw. Beim Einlesen ebenfalls, die kommen nacheinander.
-
Thread
ATMega 8, assembler | lcd und led funktionieren zusammen nicht
Hi >und sobald ich die taste loslasse geht die led wieder aus Die LEDs sind an, wenn PortB 0xFF ist. Deinem 'Programm' fehlt die Stelle an der festgestellt wird das die Taste wieder losgelassen ist *und* der PortB auf 0x00 gesetzt wird. In deinem Programm bleibt PortB bis zum Abschalten
Hi >interner pullup? was ist das Wenn ein DDR-Bit einen Port-Pin als Eingang schaltet und das zugehörige Port-Bit eine 1 enthält wird der interne Pull-Up-Widerstand (ca.50k) eingeschaltet. Damit wird ein offener Port-Pin auf H gezogen. MfG Spess
-
Thread
Einsteiger -> Ziel : Stoppuhr
Aber nicht abgucken ;) http://extremeelectronics.co.in/avr-projects/avr-project-digital-stop-watch-with-atmega8/
eine Stoppuhr ungeeignet. Dinge die man schon können muss, wenn man sowas angeht * allgemeine Port Ein/Ausgabeoperationen * Tasten einlesen * Tasten entprellen * Umgang mit Timern * CTC-Modus des Timers * Multiplexing * Verständnis, wie man mit einer ISR eine Uhr baut * Einstellen des CTC-Modus
-
Thread
ATTiny 85 AD-Wandler vs. Portpin in C (AVR Anfänger!)
Hallo zusammen, ich habe folgendes Problem: An einem ATTiny 85 habe ich an PB0, PB2, PB4 ein LC-Display über ein 4094 hängen. Initialisierung und ausgabe via Printf funktioniert wunderbar. Ich möchte jetzt über ADC3 -> PB3 einen analogen wert einlesen und auf dem Display ausgeben. Sobald ich aber das ADMUX=0xC3; register setzte kommt nur noch müll auf der Anzeige. Selbst wenn ich das ADMUX register setze und direkt danach das DDRB=0b00111111; register neu beschreibe habe ich dieses verhalten. Muss ich da noch irgendwas umstellen. Ich wollte eigentlich so vorgehen: 1. Display initialisieren
-
Thread
Taschenrechner Oszilloskop
Du kannst mit nem ASM-Programm den Link-port des Taschenrechners zu nem ttl uart umfunktionieren. Nen Prozessor liest den adc aus und schiebt die Daten per uart in den Taschenrechener.
fast alles: http://www.ticalc.org/pub/text/calcinfo/tixx_guide.zip Und dann musst du nur noch einen AVR programmieren, der die Daten aus dem AD-Wandler einliest und zum TI rüberschiebt.
-
Thread
LCD Ausgabe (Erhöhen einer Variable durch Signal am Eingang)
) 1 0 1 1 = 11 (Dezimal). Diese verbinde ich parallel mit den letzten 4 Pins von PortB, welche als Eingang defniniert werden müssen. Nun das Problem :-(, will den Zustand an allen Pins(Pin4 - Pin7) einlesen (einmalig, bis sich etwas ändert), bearbeiten und als Dezimalzahl auf dem
Beispiel noch fehlt, ist zum Einen die Schleifenbedingung wie auch die Eingangs/Ausgangsdefinierung von PortB. Danke nochmals für Eure investierte Zeit, freue mich auf neue Anregungen und Ansätze. [c] #include <avr/io.h> #include "lcd-routines.h" int main(void) { lcd_init(); int i;
-
Thread
AVR und Netzwerk
Hey Leute! Ich möchte über meine Netzwerk Karte einzelne Bits rausschreiben und über einen ATMEL ATmega8 einlesen. Ich möchte dabei aber nicht mit TCP/IP Protokollen oder SNAP usw. herum handtieren. Ich möchte im Prinzip nur einen Seriellen Daten Strang über die Netzwerk Karte rausschreiben und im Atmel auswerten. Kann ich diese Bits über einen bestimmten E/A Bereich der Karte rausschreiben? Wie zum Bsp. mit der inpout32.dll für Visual Basic und den LPT Port? Bitte um eure Hilfe... Mfg, Martin
-
Thread
Hilfe!: Quizmaster mit 8 Tastern
PORTD, temp ; Port D mit Pullup out DDRB, temp ; Port B als Ausgang ldi temp, 0x05 ; Power down & Sleep-Enable out SMCR, temp clr temp out MCUCR, temp ; PUD - Pullups erlauben out DDRD, temp ; Port D als Eingang out PORTB, temp ; Port B auf L wait_for_key: in temp, PIND ; Eingang lesen (Ports alle '1' wenn nicht aktiv) com temp ; Invertieren breq wait_for_key ;
-
Thread
Auswertung von Analog Sensor Mittels Arduino
genutzt werden, auch die Analogeingänge. A0 mit pinMode auf INPUT, und dann mit digitalRead einlesen.
Thomas L schrieb im Beitrag #2567313: > A0 mit pinMode auf INPUT, und dann mit digitalRead einlesen.
-
Thread
LCD Display HD44780 - Nur die rechte seite Funktioniert
[c]#include <avr/io.h> #include <util/delay.h> #define LCDDataPort PORTB #define LCDDataDDR DDRB #define ControlPort PORTD #define ControlDDR DDRD #define Enable 5 #define ReadWrite 7 #
eine kastrierte Initialisierung? Mach es doch einfach mal so wie im Datenblatt. > while(LCDDataPort >= 0x80){ > PeekABoo(); Das passt nicht. E auf H Einlesen E auf L MfG Spess
-
Thread
Viele Magnetventile per MCU ansteuern
messen kann wenn ich im debugger einzeln durchsteppe meine kontroll led an PortC blinkt die ganze zeit wunderbar vor sich hin und lässt sich auch nicht durch anfassen oder dergleichen stören! [c] #include <avr/io.h> #include <util/delay.h> int main(void) { PORTC
mir doch: was banales! ich dachte pulldown wäre nur bei z.B. tastern nötig die ich über einen port einlesen will... ich dachte, wenn ich an einem portpin 0 ausgebe, dann zieht es den entsprechenden eingang am register auch wirklich auf 0... warum wäre dann hier noch ein pull down nötig? kann
-
Thread
Bitte um Platinen-Review
uC mehr oder weniger gleichzeitig schalten wollen. Der größere Kondensator (z.B. 4.7 uF) am USB-Port reagiert langsamer und dient zur Stabilisierung der Gesamtversorgung.
Quarz an XTAL1/2 befindet. Da passiert gar nix, die Pins bleiben inaktiv, man kann sie je nach AVR-Typ sogar als normale IOs nutzen.
-
Thread
ADC Zeit Problem
clr zaehl clr puf1 weiter: Toggel: sbis portC,0 ;toggeln portC,0 für Anzeige auf Monitor rjmp PC0an rjmp PC0aus PC0an: sbi PortC,0 rjmp Toggel1 PC0aus: cbi PortC,0 nop Toggel1: sbis portC,0 ;toggeln portC,0 für Anzeige auf Monitor rjmp PC0an1 rjmp PC0aus1 PC0an1: sbi PortC,0 rjmp start_adc PC0aus1: cbi PortC,0
-
Thread
Einfacher Controller zum starten gesucht !
eine andere nehmen. Letztendlich ist die Hardware nur ein ATMega328P. Zu diesem und den anderen AVR basieren controllern gibt es hier sehr viel Infos. z.B.: https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial da1l6
AVR Mikrocontroller benötige keine "Software Initialisierung". Um z.B. eine LED an Port B.0 einzuschalten, schreibst Du: [code] int main(void) { DDRB |= 1; // set bit 0 of Port B data direction register
-
Thread
ATtiny13 lässt sich nicht programmieren - Brauche Ideen zum debuggen
User configuration file does not exist or is not a regular file, skipping Using Port : unknown Using Programmer : usbasp Setting bit clk period : 300.0 Setting isp clock delay : 10 AVR Part
User configuration file does not exist or is not a regular file, skipping Using Port : unknown Using Programmer : usbasp AVR Part : ATtiny13 Chip Erase delay : 4000 us PAGEL
-
Thread
switch-Anweisung AVR
Hallo zusammen, ich habe ein Problem mit dem switch Befehl.Ich möchte vom Port D die Bits 2 bis 6 einlesen um 19 Eingangskombinationen auszuwerten. Leider fällt der switch direkt zu default durch. Ich habe folgendes programmiert: switch (PIND) { case 0x04: Anweisungen; break; . . . case 0x4C: Anweisung; break; default: Anweisung; break; } Ich weiß leider nicht mehr weiter und benötige Hilfe. Danke schön.
-
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
ADC, LCD und Uhr mit ATMEGA8, ist das möglich?
für Bestätigung von Fehlern, Zweite zum Blättern bzw. zum einstellen der Uhr) Das LCD ist an Port D, der ADC an Port C und die Taster an Port B. Die Funktionalität des Computers habe ich soweit fertig. Jetzt möchte ich noch eine Uhr und vll ein Datum, das Datum ist aber zweitrangig. Mir geht
Andreas schrieb im Beitrag #2087285: > ..., sollte aber avr sein, ... meinte natürlich ATMEL
-
Thread
Taste abfragen
Ja, war bei mir auch spät :). Du darft nicht PortD einlesen sondern PinD. Ein häufig gemachter Fehler den ich selber übersehen hab :). Gruß Markus http://www.elektronik-projekt.de/
wie kann ich abfragen ob ein bestimmter pin des ports h oder l is?? laso so... if(porta.pin3==masse)
-
Thread
Uhr des µC stellen über c# keine funktion
uart_puts("\n"); } sei(); Ausgabe mit Hterm Funktion gegeben Routine von C#: serialPort1.PortName = "COM10"; serialPort1.Open(); serialPort1.WriteLine("s"); help = Time.Substring(0, 2); serialPort1.Write(help + "\n"); help = Time.Substring(3, 2); serialPort1.Write(help
serialPort1.Close();
-
Thread
Probleme mit Multiplexen
== 0 dann wird 8 ausgegeben usw.) Dadurch dass mein Platinenlayout so kompakt ist musste ich die Ports etwas "mischen". Nun zu meinem Problem die Anzeige gibt nur eine 9 aus (egal welcher eingang low ist und egal was ich mache...) Ich habe nun den ganzen Tag rumprobiert und habe das Gefühl das
) { Init... for (;;) { int wert = Wert_einlesen(); char zehner = Ziffer_Segment[wert/10]; char einer = Ziffer_Segment[wert%10]; for (int i = 0; i < 7; ++i) { Transistor_ein_aus(0, zehner & (1<<i));
-
Thread
Taschenrechner Umbau AVR
gerade nicht bei der Hand deshalb kann ich nicht sagen welches Model genau) mit LED-Display mit einem AVR Ausrüsten um mit dem dann alle möglichen spielereien zu machen. Als AVR dachte ich an einen Atmega8-16PU weil ich von denen noch ein paar herumliegen habe und der genug Leistungsreserven für meine
Entweder Low-Drop-Linearregler oder eben Schaltregler. Aber beides (finde ich) schwieriger, als den AVR bei der Spannung und 16 MHz laufen zu lassen :) .
-
Thread
Finde Fehler nicht !
immer nur einer gedrückt sein. Außerdem müsste man viele Dioden brauchen. Und die ersten 4bits eines Ports einlesen geht so: uint8_t key = PORTB & 0x0F. Die letzten 4 mit 0xF0.
Tastern auf Folientasterturen. Das Schaltbild habe ich hochgeladen. Du hast geschrieben: "... Ports einlesen geht so: uint8_t key = PORTB & 0x0F" Hmm, damit lese ich doch den Port aus, richtig? Ich benötige doch den Pin, um die Änderung festzustellen, oder? Wie im ersten "Aufsatz" erwähnt
-
Thread
PIC Port Pins namen geben und strukturieren
wieder verwenden, will was umändern und es fällt mir auf, uff, da muss man sich ja erst wieder einlesen. Also hab ich mir gleich gedacht, ich strukturier die Bezeichnungen meiner Portpins neu, mit denen ich arbeite. Problem diesmal ist, dass eben an einem Port nicht nur mein LCD (im 4 Bit Mode) hängt
sind dann die Zugriffe nicht mehr atomar, d.h. schreibt ein Interrupt auf andere Pins des gleichen Ports, dann krachts. Peter
-
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
DS18B20 Verkabelungs od Software Problem
Achim A. schrieb im Beitrag #5567356: > Auf dem Steckbrett funktioniert es einwandfrei. Der AVR ist etwas stark, das kann leicht zu Reflexionen auf den Kabeln führen. Probier mal einen Widerstand (47 ... 220Ω) in Reihe zum AVR zur Bedämpfung der Flanken.
Beitrag #5569845: > In Deiner Schaltung ist er am leitungsanfang oder? Auf der Platine mit dem AVR.
-
Thread
EMS > Adapter > NetIO > Raspi
0 Overflow:0 Max fill:3 Ich gehe mal davon aus, das der Selbstbau-Adapter + AVR-NET-IO funktionieren. Kann man eigentlich das noch irgendwie testen? Es gibt ja nur den Befehl "ems stats" im AVR-NET-IO?? Ein Telnet auf den Port 7950 zeigt mir nur kryptische Zeichen? Jetzt
3?ie=UTF8&qid=1479027240&sr=8-3&keywords=repeater+lan+port Der sollte den AVR Net IO ins wlan bringen. Somit dürfte die Kabelverlegung von der Heizung zum Router entfallen. Hat jemand so ein Konstrukt schon im Einsatz? Grüße Johannes
-
Thread
Display Ulrich Radig Software erweitern [C]
Anhang ist meine Code und die Original teil: Meiner mit PD7 [code] #include <avr/interrupt.h> #include <avr/io.h> #include "multiplex.h" #include "adc.h" //--------------------------------------------------------------------------- int main (void) { DDRD |= (1<<PD0
Hallo, soweit ich das sehe, hängt an PortD auch die Anzeige. Der Multiplex läuft in einem TimerInt. Wenn du in Main PortD auch veränderst, dann muss das atomar sein, sonst gibts diesen lustigen Effekt. Wenn du die richtige Optimierung hat,
-
Thread
Seltsames Verhalten bei verschiedenen Timer Prescalern-Atmega 328P
ich zu übersehen bzw nicht zu wissen. Hat dazu jemand eine Erklärung? MfG Andre [c] #include <avr/io.h> #include <avr/interrupt.h> /* jflags*/ #define taster_einlesen 0 #define Rampe 1 /* tflags */ #define pwm_start 0 /* Globale Variablen*/ volatile uint8_t jflags = 0; volatile
//PORTB als Ausgänge PORTB = 0xFF; DDRC = 0xFF; //PortC als Ausgänge PORTC = 0xFF; DDRD = 0x00; //PORTD als Eingänge } int main(void) { _setup(); while (1) { if(jflags &= (1<<taster_einlesen))
-
Thread
Bit Matrix in VHDL
insgesamt 32 Bytes an Daten gesendet die dieser intern in einer Matrix a 8*32 Bit speichern soll. Das Einlesen dieser Matrix muß also über die Addresse (Range 0 to 31) als Index immer 8 Bits in dieser Speichermatrix abspeichern. Bei auslesen aber müssen nun die Zeilen a 32 Bits an einem 32Bit breiten Port
. Im Worstcase kann sich dies auf 2/3 reduzieren. Im Grunde wird daraus dann ein "Dual Port SRAM" bei dem der AVR und der CPLD gemultiplext in 50% der AVR Zugriffszeit auf den SRAM zugreifen. Der CPLD packt also in 1 AVR-MCU Takt = 1 Takt WR\, RD\ == Low Pegel insgesammt 2 Speicherzugriffe
-
Thread
74HC597
dieser HC597 sein muss, könnte ich Dir noch den 4021 oder den HC165 empfehlen für das serielle Einlesen von digitalen Signalen. Jörg
pic-tutorial/shift-registers nicht stimmt. Wayne interessierts. Ich verstehe beides nicht und mein AVR auch nicht. Daher schreibe ich sowas in C. Das kann ich lesen, der AVR C-Compiler und sogar ein PIC C-Compiler sollte es auch können. [c] uint8_t shift_io( uint8_t b ) // send / receive byte
-
Thread
AtMega8 und g++ Optimierung: PIN einlesen wird wegoptimiert
Hallo, ich steuere ein Display mit dem Atmega8 an, der Code ist in C++ geschrieben. Unter anderem gibt es folgende Methode mit der "PROBLEMZEILE". [code] unsigned char readByte() { unsigned char byte; DDRD=0x00; //PortD as input PORTD=0xFF; //PortD with internal Pull-Up PORTB |= (1 << WRB); // Read //Dummy read after setting address PORTB |= (1 << RDB); PORTB &= ~(1 << RDB); PORTB |= (1 << RDB); // really read PORTB |= (1 << RDB); PORTB &= ~(1 << RDB); byte = PIND; //PROBLEMZEILE PORTB |= (1 << RDB); return byte; } [
-
Thread
mit µC in Excel schreiben
Mittels VBA in Excel kannst die port.dll Datei ansprechen und über diese seriell kommunizieren. Edit: wenn ich mich recht erinnere wird es auch so im Kainka Buch umgesetzt
weiterarbeiten. Excel mag nur 65000 Zeilen haben, aber um wie viel Daten handelt es sich hier überhaupt? Ein AVR-µC hat selten mehr als 128k RAM an Bord. Gruß, DetlevT
-
Thread
Simple Frage zu Relaissteuerung
An den AVR-NET-IO kannst kein Relais direkt anschliessen, denn an den Anschlüssen sind nur die Ports des Mikroprozessors angeschlossen. Bevor Du dich mit solchen Dingen beschäftigst, solltest Du zuerst einmal
"""An den AVR-NET-IO kannst kein Relais direkt anschliessen, denn an den Anschlüssen sind nur die Ports des Mikroprozessors angeschlossen.""" an diese port´s kommt nun ein treiber dran der die relais schalten
-
Thread
Mal wieder: _delay_ms() Zeit stimmt nicht
Welcher AVR ist es denn eigentlich? Es gibt auch welche, deren int. Osc.auf 9.6 MHz laufen kann, z.b Tiny13 als kleinstes Beispiel.
mindestens einen Port"? Ein Port hat in der Regel 8 Pins. Wozu brauchst du dann die übrigen 7 bzw. 6 Pins?
-
Thread
Dimensionierung Pull-Up
und runter programmieren, aber > habe noch nie einen Arduino da kannst du genau wie bei nackten AVR die Ports setzen wie immmer, du musst nicht mal die Arduino Schreibweise bemühen. entweder PORTB |= (1<<4); oder digitalWrite(12, HIGH); // 12 für D12 auf dem ATmega328p PB4 für den internen
runter programmieren, aber >> habe noch nie einen Arduino > > da kannst du genau wie bei nackten AVR die Ports setzen wie immmer, du > musst nicht mal die Arduino Schreibweise bemühen. Richtig, aber Darius wollte ja gern, dass ich ihm mit einem Sketch demonstriere, wie das aussehen soll. Das
-
Thread
NMEA - Protokoll / UBLOX SAM - LS / ATMEGA 16
TAKT-Flanke /* **************** Bit - Funktionen ****************** */ #define SET_BIT(PORT, BITNUM) ((PORT) |= (1<<(BITNUM))) //Zum setzen von einzelnen Bits #define CLEAR_BIT(PORT, BITNUM) ((PORT) &= ~(1<<(BITNUM))) //Zum loeschen von einzelnen Bits #define TOGGLE_BIT(PORT,
Hallo Martin, schau mal bei http://www.holger-klabunde.de/avr/avrboard.htm#GPSdisplay Gruß Wolfgang
-
Thread
Microcontroller über Windows Applikation anpassen. Aber wie?
LED gesetzt. Der Mega braucht dann diese Bits nur noch > auf den LED-Port zu kopieren. Ich würde mal sagen 30 Befehle in ASM :-) Danke für die Rückmeldung. Ich sehe UART klingt nach dem richtigen Stichwort. Da werde ich mich ein wenig einlesen. Die Hauptfunktion die
Wenn alle LEDs am gleichen Port hängen lässt sich das Programm übrigens noch deutlich verkürzen: [c]#define F_CPU 14745600 #include <stdint.h> #include <avr/io.h> #include <util/delay.h> #define LED_KEINE 0x00 #define
-
Thread
Zwei Prozesse nutzen einen Vektor. Geht das so?
Reinhard J. schrieb im Beitrag #3866150: > Ist das dann ein 16 Bit Integer vom Typ int16_t für den AVR? Soviel ich weiss, arbeitet der AVR little endian. Also passt es.
gewünschte Adresse anlegen und darin steht dann direkt der Wert. Du musst also nicht erst "manuell" Ports einlesen, sondern die Werte stehen dann quasi direkt in der Variable. Aber so wie du das vor hast, geht das natürlich auch. Ist nur ein bisschen umständlicher. Falls es dich interessiert, deine
-
Thread
Frage zu IR-Remote+LED-Strips an AVR
[bit]" "\n\t" // 1 bit-- (T = 5) "st %a[port], %[next]" "\n\t" // 2 PORT = next (T = 7) "mov %[next] , %[lo]" "\n\t" // 1 next = lo (T = 8) "breq nextbyte20" "\n\t" // 1-2 if(bit == 0) (from dec above
einfache, aber relativ RAM-intensive Lösung. Und der serialisiert und transferiert die Daten über den Port zu den LEDs?
-
Thread
Auslesen des Beschl.-Sensors ADXL202
Werten berechnen und somit, das ziemlich flatterige Signal des Sensors glätten. Hier zum Einlesen des AD-Wertes: ////////////////////////////////////////////////////////////////////////////////////////// // sample ADC PortC... /////////////////////////////////////////////////
Programm (mit Interrupts), welches dir dann nie Pulslänge an den PC schicken sollte : #include <avr/io.h> #include <avr/signal.h> #include <avr/interrupt.h> #include <inttypes.h> // um Register auch bitweise in Binärformat ansprechen zu können #define BIN8(b7,b6,b5,b4,b3,b2,b1,b0) (
-
Thread
Modellhaus Beleuchtung
> hab aber keine ahnung wie ich das in den mikrocontroller > reinprügeln soll. AVR-Studio und ein paar Zeilen Assembler: 1 Zähler hochzählen (z. B. im Sekundentakt) 2 Tabelle mit Schaltzuständen aus Flash einlesen 3 Wert aus Tabelle holen 4 auf Port ausgeben 5 weiter mit 1
Schieberegister IC's hintereinander schalten, so dass du 3*8=24 Ausgänge hast. Deshalb nennen manche sie auch *Port-multiplikator* :) Ich würde an den Ausgängen des IC's immer einen Transistor verwenden, also je LED einen BC547C oder BC846 ...