-
Thread
Kann PORTC nicht korrekt auslesen
/AVR-Tutorial:_IO-Grundlagen > Wenn ich nun den Schalter aber drehe, kommen nicht die LEDs wie > gewünscht Welchen Pegel kannst du denn am Pin /messen/?
Hi, Vielleicht einfach auch nur der Klassiker: PortC = JTAG, JTAG ist in den Fuses an und deswegen gehen die IO-Befehle in die Hose... Probiert mal D9 als HFuse.
-
Thread
Schaltung mit 74HC595 Schieberegister
Das geht so nicht. Der HC595 braucht nach dem Einlesen der Daten einen positiven (LHL) Übernahme Impuls am RCLK Pin-12. das ist der zugrundeliegende Fehler. Dann suche Dir besser ein englischsprachiges Datenblatt. Mein Chinesisch ist nicht zu gut:
auch aus funktionierendem Code. Es sind ja auch nur wenig Bedingungen zu erfüllen um den SPI Port benutzen zu können: Benutzte Pins als Outputs setzen SPI Control Register setzen um den SPI Port zu aktivieren SPI Data Register schreiben Wiederholt SPI-Flag Bits checken um zu warten bis alle
-
Thread
Gabellichtschranke pulse zählen
Hallo zusammen, ich möchte gerne von einer gabellichtschranke pulse zählen an einem Port z.B. Port D PD7 . Ich habe mir schon mal die Caounter/timer funktionen meines atmega 128 angeschaut werde da aber nicht richtig schlau draus gibts da noch eine einfachere möglichkeit zum Zählen
// Header-File aus dem AVR-GCC-Tutorial // Header-File geändert (LCD sitzt an Port A) int main(void) { uint8_t bPortD; bPortD = PIND; int counter1
-
Thread
PIN einlesen, in variable laden, maskieren und anschließend abfragen-PROB
Also das ist das erste mal dass mir so etwas passiert, Titel sagt hoffentlich alles, Nicht funktionierender Codeabschnitt: [c] DDRD |= (1<<PD4) | (1<<PD5); //PWM Kanäle als Ausgang PORTD |= (1<<PD0); //PIND.0 als Input und Pullup aktivieren //Read EEPROM:***************************** registerVariable = PIND; registerVariable &= 0b00000001; if(registerVariable & 0b00000001) sollwert = eeprom_read_word(&EEsollwert); else if(registerVariable & 0b00000000) sollwert = 0; //***************************************** //Messe die Linie aus und zeige Zustände am
-
Thread
Ferngesteurtes Fahrzeug (Ansteuerung von Motoren)
Chassis (Aluprofil o.ä.) 1x Platine (Lochraster o.ä.) 1x ISP-Programmer 1x Entwicklungsumgebung (WinAVR, AVR-GCC+AVRDUDE, ATMEL-Studio o.ä.) 1x 12V-Akkupack 1x 5V-Regler für den µC Xx Hühnerfutter (Widerlinge, Kondensatoren, Dioden usw. usf.) So, damit weißt Du was Du für einen ganz einfachen Fahrroboter
vorhanden sind, bei den den AVR, also den µC aus der ATiny ATmega und wie sie nich alle heißen Serie sind sehr gute Datenblätter zu haben. Damit und den Tutorials hier sollte es eigentlich kein Problem sein, dem erstmal ein LED blinken
-
Thread
Eine Sprungtabelle, aber wie?
Schwimmschalter SW6 sbi PORTD,0 ;--------------------------------------------------------------------- ;Ports als Aisgänge konfigurieren PortA und PortB und PortD ;PortA >> PA0 >> LED 1 Zeigt den Zustand vom SW1 Pin 40 ;PortA >> PA1 >> LED 2 Zeigt den Zustand vom SW2 Pin 39 ;PortA >> PA2 >> LED 3
Hi Irgendwie passt das nicht zusammen: >;Ports als Aisgänge konfigurieren PortA und PortB und PortD >;PortA >> PA0 >> LED 1 Zeigt den Zustand vom SW1 Pin 40 >;PortA >> PA1 >> LED 2 Zeigt den Zustand vom SW2 Pin 39 >;PortA >> PA2 >> LED
-
Thread
Taster und LED an µC-Pin
Beim LED-Anzeigen DDR Register auf Ausgang stellen, => Led kann angesteuert werden. Beim Taster einlesen: DDR auf Eingang, internen Pull-Up an und messen. Wenn die Spannung bei geöffnetem Taster am Port nicht reicht, um als High-Level erkannt zu werden, andere LED verwenden (z.B. weisse mit >3V) oder
20..50 k interem Pull-Up. Ich tendiere derzeit zu 2k2, das macht ein gutes Milliampere, wenn der Port als Ausgang High ist und ist reichlich niederohmig , wenn der Port mit dem internen Pull-Up als Eingang geschaltet wird.
-
Thread
Impulswahl zu Tonwahl-Konverter
von Atmel gibts ne AN dazu: AVR314: DTMF Generator on tinyAVR and megaAVR devices http://www.atmel.com/Images/doc1982.pdf
danke, kann ich auch gebrauchen! Mir könntest du aber doch bitte eine kurze Erklärung geben (das Einlesen der Impulswahl erschließt sich irgendwie nicht sofort....) Da ich keinen IAR habe, muss ich das auch irgendwie in Richtung GCC umrubeln. Viele Grüße, egberto
-
Thread
atmega8 mit 3ADCs und 500kHz betriben
daraus erzeugten Digitalsignale dann an normale IO Pins. Wenn alle 3 Rechtecksignale am gleichen Port hängen, kannst du alle 3 Signale gleichzeitig einlesen. Bei 100kHz musst du mit mindestens 200kHz einlesen um die Signale richtig zu erfassen. Da hat der AVR ganz schön was zu tun.
oder immer high wenn er mit genau 200kHz abtasen würde. Davon ab würd ich ehr bezweifeln das der AVR das schafft. Einlesen über Portpins sicher, aber dann noch eine Verarbeitung der Werte dürfte schwierig werden.
-
Thread
SD Karten Library für ATMega gesucht
und avr_complex.
Falk B. schrieb im Beitrag #4854914: > Keine Ahung, bei meiner Version gibt es 2 avr-Ordner, einmall > avr_foolproof und avr_complex. Okay, bei mir gibt es nur avr. Wenn ich dort die Dateien rausnehme und in mein Projekt rein packe. Gibt es viele Fehlermeldungen. Die Meisten sind
-
Thread
8 Lichtschranken & 8 Siebensegmentanzeigen (Plazierungsanzeige)
ja auch schon einiges. Aber wie gehe ich am besten bei den Eingängen vor? 8 Lichtschranken an 8 Ports finde ich unglücklich? Sicher gibts etwas ähnliches wie den MAX7219 auch für Eingangssignale. Vielleicht ist ja auch ein 74xx165 das richtige. http://www.mikrocontroller.net/articles/AVR-Tutorial
zu tun hat als sich auf die lichtschranken zu konzentrieren würde ich alle lichtschranken an einen port packen, damit kann ich alle mit einem einzigen befehl einlesen und in wenigen takten prüfen ob sich überhaupt was geändert hat. wenn ja kann ich weiterschauen was sich geändert hat und entsprechende
-
Thread
Temperatur DS1820 ausgabe auf lcd
http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD insbesondere der Abschnitt http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD#Zahlen_ausgeben
mein lcd angezeigt sonder nur wirre zeiche > Und rück ein paar Informationen raus: > - welchen AVR benutzt du? atmega128-16 mit 14,745600MHz > - Ist die Schaltung korrekt(evtl. hier posten)? schaltung ist so aufgebaut wie im daten blatt der DS1820 ist an PortD.0 angeschlossen sensor: gng-
-
Thread
Bidirektionaler i/o Port deklarieren am ATMega
für Versorgungsspannung machen und die nicht über die Datenleitung mit Energie Versorgen. 2. Die Ports beim AVR sind alle automatisch Bidirektionaler, da muss man nichts machen. Wenn du ein Ports als Ausgang schaltest kann man weiterhin den Eingang (PIN) abfragen. Beispiel: DDR ist auf OUT (1)
wenn man einen Pin auf Ausgang und High schaltet, und dann im PinRegister 0 lesen will, dann ist der Port voll (über)belastet. Und der gegnerische Port ebenfalls. Nöö, das ist kein erstrebenswerter Zustand!
-
Thread
Kompletter Einsteiger: welcher µC, um Knopfdruck an PC weiterzuleiten?
Parallelport vorhanden, dann ist die Sache besser machbar. Ansonsten aber für einen uC-Einstieg lieber in das AVR GCC Tutorial schauen und ein paar Standalone-Projekte entwickeln...
einlesen können. Heute muss man an den PC erst das Pendant eines C64 (allerdings mit mehr Rechenleistung) anschließen, der dann dediziert zum Einlesen der Taste da ist, da der PC selbst nicht mehr in der Lage
-
Thread
AVR bin-datei via bluetooth senden
Hallo, ich möchte gerne meine MCU via Bluetooth updaten. Dazu möchte ich die aus Atmel Studio generierte BIN Datei via Blueooth zur MCU senden und mit ElmChan FatFS auf einer SD-Karte speichern, von der ich das Update dann ausführe. Das Update von der Karte funktioniert, wenn ich die BIN Datei am PC drauf kopiere. Aber beim senden via Bluetooth geht das nicht. Die Datei auf der Sd-Karte sieht dann auch anders aus wie das original. Ein kleines Programm zum senden habe ich in Visual Studio geschrieben, wo man direkt binary daten einlesen kann. Aber man muss noch ein Encoding angeben, ich weiß
-
Thread
Pins am Mega16 lückenhaft
Loop1: dec loop brne Loop1 ret [/avrasm] Woran kann es liegen, dass ich nicht den ganzen Port C einlesen kann? Danke im voraus.
[pre] if( µC == Mega 16 && Probleme am Port C ) disable_fuse( JTAGEN ) [/pre] :-) http://www.mikrocontroller.net/articles/AVR_Fuses#Kompatibilit.C3.A4tsfuses_und_manchmal_l.C3.A4stige_Defaults
-
Thread
Testgerät für SUBD-Leitungen
Genau. Peter Mueller schrieb im Beitrag #1865579: > wie man es am besten aufbaut Ein I/O-Port als Ausgang, die einzelnen Pins an SubD-Buchse A. Einen I/O Port als Eingang, die einzelnen Pins auf SubD-Buchse B. Dann zu prüfendes Kabel dazwischenstecken. Alle Ausgänge mit mehreren 1/0-Pulsen durchfahren
kann man zur Laufzeit des Programms auf dem AVR ohne Probleme umkonfigurieren.
-
Thread
CMOS Sensor MT9P031
man kann 1MB an Geschwindigkeit bekommen (über den Datendurchsatz hab ich mir keine Gedanken beim AVR gemacht). Daher könnte zeilenbasiert fehlschlagen. Schöner wär es dem AVR alle Daten vorzukauen und ihm diese parallel zu füttern. Den AVR würde ich auch nur nehmen um eine SD-Karte anzusprechen
die Applikation und auf dem anderen Kern Linux laufen zu lassen. Als Eingangsport kommt nur der PPI-Port in Betracht, die Einlese wird hier dann auch zeilenweise organisiert, um die schnellen DMA-Kanäle im L1 nutzen zu können. Da der PPI ja auch nicht die 96MHz kann, benutzen wird vor dem PPI-Port häufig
-
Thread
LCD 202A Conrad und Atmega 8
"Pin2 gegen Pin8 und auch 5V." Meinte Pin3 Port2 gegen Pin 8 (GND) und auch 5V Pin4 usw analog
So, habe nun jeden einzelnen Port durchgemessen. Der Pin 2 von PortD hatte irgendwie kein Kontakt zum Sockel. Fehler behoben. Nun haben alle Pins 5V gegen Masse. Anschließend habe ich wieder das LCD Programm geflasht. Hier
-
Thread
Gutes JTAG Tutorial gesucht
(deviceNames, i*64, strSize, Charset.forName("US-ASCII")); // Only count the first port of FTDI chip if (devices[i].endsWith(" B")) devices[i] = null; else devCountPortA++; } // Filter "port B" devices String[] devicesPortA = new String[devCountPortA]; devCountPortA = 0; for (int i = 0; i < devCount; i++) { if (devices[i] != null) devicesPortA[devCountPortA++] = devices[i]; } return devicesPortA; }
-
Thread
PINA auslesen für 4x3 Tastaturmatrix
die Schaltung mit dem Multimeter überprüfe funktioniert es tadellos. Ich habe das Programm mit AVR-Studio simuliert und es funktioniert einwandfrei. Setze ich das Programm auf meinen ATMega16 bekomme ich beim Einlesen vom PINA nur Mist angezeigt. Die Zahlenwerte ändern sich nicht wie sie sollen
Doch, der AVR kann natürlich eine Kombination von Ein- und Ausgängen auf einem Port. Falls Du direkt nach der Ausgabe des Spaltenwertes die Zeilenabfrage machst, da habe ich mich schonmal totgesucht (obwohl
-
Thread
Mein erstes AVR Board
Hi Ich habe soeben mein erstes AVR Board entworfen. Wäre super nett wenn ein Experte mal einen Blick draufwerfen könnte! PS: Das ISP Kabel moechte ich nicht selbst löten, kann man das auch kaufen (ich habe vor AVR Studio & AVRDude
http://www.mikrocontroller.net/articles/AVR_In_System_Programmer
-
Thread
Mega8 Assembler RGB Fader
einlesen und dann vergleichen/prüfen und nicht vergessen den Port (Portbit) auf Eingang schalten . siehe auch tutorial ;-) http://www.mikrocontroller.net/articles/AVR-Tutorial:_Tasten Gruß
Registerwert einlesen und dann vergleichen/prüfen > und nicht vergessen den Port (Portbit) auf Eingang schalten . Quatsch. Sobald du an ein Register mit IN/OUT ran kommst, kannst du auch einen sbis oder eine andere
-
Thread
kleiner Webserver gesucht Rs232 -> Ethernet
Habe auch schon an eine auf Linux umgebaute Fritzbox gedacht, die ist ja eh immer an und am USB Port könnte man dann einen USB->RS232 Wandler stecken. Pascal Compiler soll es ja auch für Linux geben. Dazu muß ich mich aber auch erst einlesen... Da habe ich aber ehrlich gesagt wieder angst, wenn das
hier mit SDK gemeint? http://de.wikipedia.org/wiki/Software_Development_Kit gibt es also beim X-Port eine Entwicklungsumgebung ähnlich dem AVR-Studio dazu? Wenn das so ist dann wird wohl die Programmiersprche wieder C sein? Dann ist es wohl wirklich am besten erstmal alles über den Virtuellen COM
-
Thread
AVR GCC Schleife
alles mögliche versucht aber ich schaffs nicht... Ich möchte das beim meinem Programm das in AVR GCC geschrieben werden soll zu beginn der eingang D überürüft wird Etwa so.... start If pind1 = high then portb = 0b00000000 portb = 0b00000011 if pind2 = high then portb = 0b00000000
verändern. Ganz im Gegenteil du lernst eben nicht. http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial hier solltest du anfangen
-
Thread
Digitale Audiowiedergabe mit AVR
nur darum geht Sprachmeldungen, Warteschleifenmusik o.ä. auszugeben, häng ein R2R-Netzwerk an einen Port und beschränke dich auf 8 Bit. Wenn du wirklich qualitativ hochwertige Audiosignale erzeugen möchtest, dann ist der AVR nicht der richtige Controller; nimm lieber einen [[AT91SAM]]7, da lassen sich
noch die Wordclock hin. Hat man ein Parallel-auf Seriell-Register ausreichender Breite und genug PortPins am AVR, um dieses parallel zu laden, kann man auch mit einem AVR und diesen neumodischen Konvertern ;-) zu brauchbaren Ergebnissen kommen. Dann braucht der AVR nur noch Fs x 2 Ausgaben zu machen
-
Thread
Hameg 205-3 PC Interface
to connect the interface the same problem . Any ideas what going wrong ? . Any suggestions for port settings ? . Now I have the default port settings: Bit per second :9600 , Data bits :8 , Parity :N , Stop bits :1 , Flow control :None .
Das ist Eclipse unter Linux mit AVR Plugin. Funktioniert mit avrdude und läuft unter Linux einwandfrei.
-
Thread
Wie Assembler ISR in C integrieren ?
[c] .org OC1Aaddr ; c-haters optimierte Routine in isr_SREG,SREG in isr_tmp,outPORT subi isr_tmp,incrmnt ; synchr. pos. Flanke out outPORT,isr_tmp out SREG,isr_SREG reti [/c]
'push'/ 'pop' und das Sichern/ Wiederherstellen von SREG in der ISR einfach weg. Ich würde das Einlesen des Ports auch noch weglassen. (Der ist bei dieser Verwendung sowieso zu nichts anderem zu gebrauchen.) Spart 11Zyklen. [c] ISR(TIMER1_COMPA_vect, ISR_NAKED) { asm volatile( "inc r8
-
Thread
MC für IR-Fernsteuerung programmieren
Schritte. Der Überlauf passiert bei 256, also muß er bei 256-46=210 mit dem Zählen anfangen. Einlesen: Du mußt das Portpin auf Input schalten (über das Data Direction Register, DDRx) und dann den Wert einlesen (Pin-Kommando). Eine Beschreibung für Bascom findet sich hier: http://www.rowalt.de/mc/avr
Wie Du dort http://www.rowalt.de/mc/avr/avrboard/03/avrb03.htm übersehen hast, wird im Bascom ein I/O-Pin mit dem PIN-Kommando gelesen. Deine Abfrage muß also If Pind.2 = 1 then heißen. Die Bascom-Hilfe sagt dazu: 'reading the PORT
-
Thread
FIR Filter auf PIC
nimmst du die Musik? Kannst du mal ein > Schema posten? Spotify -> Soundkarte (Cinch) -> An Analog Port -> im µC messen -> Ausgabe am UART Port -> Einlesen am PC mit UART / USB Converter Patrick B. schrieb im Beitrag #5093978: > Kann es sein dass dein Musik-Signal 0-5V ist und du am ADC das > als
die Musik? Kannst du mal ein >> Schema posten? > > Spotify -> Soundkarte (Cinch) -> An Analog Port -> im µC messen -> > Ausgabe am UART Port -> Einlesen am PC mit UART / USB Converter Mhm, die Soundkarte gibt dir irgendwas +-V aus. Wenn der ADC Eingang ganz normal aufgebaut ist, wirst du hier
-
Thread
Schaltung OK?
Warum ist am COM-Port 1 auf Masse gelegt? Das gehört auf Pin5
ISP-Daten anliegen. Displaydaten z.B sind egal, solange E oder /CS bei Reset = L und damit TriState der AVR-Leitungen nicht aktiv sind. AVR als Eingang darf eben in diesem Zustand kein anderes ICs aktive Ausgänge haben. Das ist mit einem passenden PullUp/PullDown Widerstand an /CS, E, oder was auch immer,
-
Thread
V-USB selber machen
man schon erkennen: http://www.rn-wissen.de/index.php/V-USB:_Ein_Firmware_USB-Treiber_f%C3%BCr_AVR mfG ingo
aber hier nicht benötigt. Da die Treiber bereits vorhanden sind. > Wo kann ich mich über V-USB einlesen ( möchte keine weiteren Chips > verwenden)? Keine weiteren Chips = OBdev, da der A88 keinen USB-Port hat. http://www.mikrocontroller.net/topic/206671?reply_to=2041303#2041366 > Suche keine
-
Thread
"Bootloader" für ATTiny2313
Hey dieser Betrag iss cool lebt der Verfasser noch ? Wie sieht das AVR109 Protokoll aus ?
24/45/85 von Kasper Pedersen. Die Anbindung erfolgt über Widerstand und Zenerdiode am seriellen Port des PCs in Verbindung mit einem kleinen Programm. Der Bootloader liegt immer am Speicherende des Tiny's. Der Sprungvector, z.B. vom WinAVR wird beim Einlesen eines neuen Programmes autom. angepasst.
-
Thread
Pulsweitenmessung 16 Bit Carry-Flag addieren
stattgefunden haben, oder man nutzt gleich den ADC-Complete-Interrupt. In beiden Fällen kann der AVR während der Wandlung andere Aufgaben erledigen oder schlafen. Schau mal bei http://www.hanneslux.de/avr/index.html vorbei, da findest du einige Beispiele. Die Quelltexte sind meist gut kommentiert
Tachoimpuls) im Timerint. ausgelesen. waren allerdings nur die fallenden Flanken. Ging auch über xor. Port einlesen und merken temp= xor mit alten Portzustand < geänderte Bits portpins_gesetzt = einglesener Port AND temp aktuellen(gemerkten) Portzustand als alt deklarieren So ähnlich war das. Bei genügend
-
Thread
Videosignalverarbeitung mit STM32
800mal mit der gewünschten Farbtiefe abtasten, in einen binären Datenstrom wandeln, der uC diesen einlesen, abspeichern, verarbeiten und wieder ausgeben. Dazu müsste der A/D mit einer Frequenz von ca. 15,4 MHz arbeiten, bzw. doppelt so hoch (oversampling). Der Datenbus wäre sicher besser parallel um
über Timer, DMA und zB. SPI laufen, sonst ist der wirklich nur am rechenen. Wie schon gesagt für den AVR gibt es genug Beispiele und der ist nicht gerade der super schnellste. Für die Ausgabe sehe ich keine Probleme. Beim Einlesen gibt es entweder entsprechende ADC oder wenn der STM schnell genug
-
Thread
STM32F4Discovery und TLC5940
13 #define SPI2_CS_PORT GPIOB // Alternate(5) #define SPI2_CS_PIN 12 // Not Connected . . . static const SPIConfig spi2cfg = { NULL, SPI2_CS_PORT, SPI2_CS_PIN, 0 // Full 21 MHz-Speed }; . . . palSetPadMode(SPI2_SCLK_PORT, SPI2_SCLK_PIN, PAL_MODE_ALTERNATE(5) | PAL_STM32_OSPEED_MID2); palSetPadMode(SPI2_MOSI_PORT, SPI2_MOSI_PIN, PAL_MODE_ALTERNATE(5) | PAL_STM32_OSPEED_MID2); palSetPadMode(SPI2_CS_PORT, SPI2_CS_PIN
-
Thread
AVR_Programmierung eines uController
gestern in der Schule eine Aufgabenstellung für ein Microcontrollerboard bekommen, programmiert wird im AVR, und weis nicht wie ich anfangen soll? Die Software ist für einen ATmega16 Hier die Aufgabenstellung: Ein uController Programm ist zu erstellen, dass die Frequenz eines ADC-Port des uControllers
Teilaufgabe 2 henge ich? > > Wie funktioniert das mit dem ADC wert, mit fmin und fmax? ADC-Wert einlesen geht schon? (⇒ http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Analoge_Ein-_und_Ausgabe) dann, fmin und fmax sind vorgegeben, oder? Aus der Frequenz die Periodendauer ausrechnen, der Timer
-
Thread
AVR GCC erzeugt unmengen an code?
wiedermal dran schuld. Die eine Masseschiene ist nicht gut mit der anderen verbunden. [c]#include <avr/io.h> #include <stdint.h> #include <util/delay.h> #define ControlDDR DDRA #define ControlPORT PORTA #define Motor 6 #define Heizung 7 uint16_t delay; int main(void) { ADMUX = (1
ADEN) | (0b101); ControlDDR |= (1 << Heizung); while(1) { if(bit_is_set(ControlPORT, Heizung)) { ControlPORT &= ~(1 << Heizung); } else { ControlPORT |= (1 << Heizung); } ADCSR |= (1 << ADSC); loop_until_bit_is_set(ADCSR, ADIF); delay = ADC
-
Thread
Mikrocontroller-Programmierung selber beibringen
Dazu gibt es hier auf der Seite Tutorien, die sich auf die Atmel AVR beziehen. Auf anderen Internetseiten kann man sich über den Einstieg in andere Controller-Familien einlesen. Der AVR ist schon ziemlich verbreitet und wenn man zu einem schnellen Ergebnis kommen will
@ DIL24 (Gast) >AVR stirbt. Totgesagte leben länger ;-)
-
Thread
Atmega zu schnell
Schnittstelle übergebe ich eine 16 bit Temperatur. Die ich in Labview über die Visa Schnisttelle einlese. Das Problem ist folgendes: Labview initialiesiert die Visa Schnittstelle bei jedem Schleifendurchgang neu, so dass schon ca. 1000 Bytes am Port der Visa Schnittstelle anliegen bevor die abgeolt
nicht hellsehen. Dein Problem ist, Du hast kein Protokoll. Ein einfaches Protokoll wäre, der AVR sendet nur auf Anforderung. Z.B. Labwiev sendet ein '?' und dann erst sendet der AVR. Damit weiß dann Labview, welches das 1. Byte ist. Peter
-
Thread
AVR -> STM8/32. Was ist anders? Was zu beachten? Was benötigt? Gesperrt
> #include <avr/io.h> > > DDRA |= (1<<PA1); // pin als Ausgang > PORTA |= (1<<PA1); // PIN auf HIGH IAR & STM8: #include "iostm8.h" PA_DDR_DDR1 = 1; PA_CR1_C11 = 1; // Port A, pin 1 is Push-Pull
Es ist im Prinzip genau das Gleiche. Beim Arm muss nur zusätzlich der Port an den Bus zugeschaltet werden: RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); DDRA |= (1<<PA1); // pin als Ausgang beim AVR gibt es nur Eingang und Ausgang, also 1Bit gestzt
-
Thread
Binär-Uhr hoffentlich finale Schaltung
Wartezeit macht überhaupt nichts aus, da entprellen softwaremäßig (fast) nichts kostet: 1 Takt fürs einlesen ohne Entprellen oder 12 Takte mit entprellen bei 30Hz Refresh @1Mhz: 30µs <> 360µs 0,003% <> 0,036% Es ist übrigens egal ob der avr mit 16Mhz oder 1Mhz läuft, den Strom verbrauchen die
Die Transistoren für die 6 Leds, brauchst du die wirklich? Der Avr kann 40mA pro Pin und maximal 100mA pro Port treiben.
-
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
Warum liegen eigentlich die Portfunktionen bei den kleinen Megas so ungünstig?
Datenport den ich möglichst schnell beschreiben und lesen kann. Nun möchte ich dafür gern einen kleinen AVR verwenden. Der Tiny2313 hat nicht genug Pins, nen Mega88 hätte ich sogar noch als TQFP da, super. Nun folgendendes: Port B hat an 5/6 den Quarz liegen (bei schnellem Uart unverzichtbar) und Port D
Programm was 8bit + ~8 einzelne Leitungen + Uart + Quarz braucht?!? Selbst wenn ich einen neuen AVR bestellen würde: Es gibt scheinbar kein "kleines" Modell wo man neben UART und Quarz nen 8 bit Port frei hat. Im Endeffekt werde ich wohl den mega88 nehmen und 3 zusätzliche CPU Takte pro IO in Kauf
-
Thread
RS232 nach HTTP/HTML Konverter
Firmware, neuen COB-Dateien und neuen Tools aufzupeppen. (lohnt sich übrigens !!) Du kannst den Port (Standard 10001) beliebig verschieben. Ich habe ihn auf Port 80 gelegt und den für die Webverwaltung auf port 443. Mache mal ein Telnet in folgender Syntax: telnet pabu19.dyndns.org
it excuses but not if tendras the code to test USBWIZ with a microcontroller AVR
-
Thread
XMega und QDec
oder stelle ich mich nur an? Zu Testzwecken habe ich einen Drehgeber mit 32 Positionen Auflösung an Port E eines XMega128A1 angeschlossen. Die Initialisierung ist: [c] lineCount = 32; QDEC_Total_Setup(&PORTE, /*PORT_t * qPort*/ 0, /*uint8
.INTFLAGS = TC0_CCAIF_bm; AVR_LEAVE_CRITICAL_REGION(); } ISR(QDecCounter0CCB) { AVR_ENTER_CRITICAL_REGION(); register int step = QDecCounterStep; QDecCounter0Base -= step; QDecCounter0Offset -= step; QDecCounter0
-
Thread
Komisches Problem: ein Controller geht der andere nicht (gleiches Programm)
genau auf dem Controller und läuft über den gleichen USART. Hier der Quelltext: [c] #include <avr/io.h> #include <avr/interrupt.h> #include <inttypes.h> #include <util/delay.h> #define BAUD 9600L // Baudrate, das L am Ende ist wichtig, NICHT UL verwenden! #define UBRR_VAL
Interrupt Routine if (ucUDR_valid1) uiVerloreneZeichen1++; //Empfangenes Byte in ucUDR1 einlesen ucUDR1 = UDR1; //ucUDR_valid1 setzen ucUDR_valid1 = 1; } [/c] tritt der Fehler auf.
-
Thread
V-USB und der ATtiny84
? Links: [1] http://www.elektronik-labor.de/AVR/WildeMaus.html [2] http://www.elektronik-labor.de/AVR/Rebooter.html Danke burgerohnealles
fast alles mit dem v-usb anfangen, der Treiber ist sehr flexibel. Du müsstest Dich aber weiter einlesen. PCINT ist eine Sammelschiene für max. 8 Interrupt eines Ports: *PCINT0* Pin Change Interrupt Request 0 *Eingänge* PCINT7 bis PCINT0 jeder Zustandswechsel führt zu einem PCINT0 ISR Aufruf.
-
Thread
mit Tastern auswählen (ATMEGA8)
hab ein Problem damit mehreren Auswahltastern zu sagen was sie machen sollen. Will zum Beispiel an Port B eines ATMEGA 8 einen Taster drücken und dann soll z.B. ein Lauflicht an PIN D starten. Wollt das ganze mit einer switch case Anweisung machen. Hab auch schon meine erste Idee fertig und im AVR Studio
das mit PORT B ist oben ein Tippfehler. Soll PORT C heißen.
-
Thread
Taster-Matrix Code von Peda auf AVR
Der AVR-GCC kennt keine Memory-Typen. "idata" und "code" löschen oder leer definieren. Peter
Anhang meine überarbeitet version wenn ich nun die Tasten Drücke bekomme ich den Binär Code am LED Port angezeigt wenn ich die Taste loslasse wird der Port wieder gelöscht. Nur muss ich das nun noch entprellen. Da hab ich den Kommentar von PeDa in der Routine nicht verstanden "call with debouncing