-
Thread
Sprachausgabe mit AVR
Hi, hast du die Demo von Bascom oder die Vollversion? Mit der Demoversion kannst du AVR-Dos nicht benutzen, da der Code deutlich über 4kB groß wird. Eigentlich ist AVR-Dos schon in BASCOM integriert. Als beispiel solltest du dir die Datei /BASCOM-AVR/SAMPLES/AVRDOS/Test_DOS_drive.bas
ich bei 20 MHz und 22050 KHz sampling [c] #include <stdio.h> #include <string.h> #include <avr/io.h> #include <avr/eeprom.h> #include "mmc.h" #include "fat.h" #include "usart.h" #include <util/delay.h> #include <avr/interrupt.h> volatile int a; int b; int dl2; unsigned char
-
Thread
Programmoptimierung
/ SUMMER_PORT |= (1 << SUMMER_PIN); _delay_ms(3.8); SUMMER_PORT &= ~(1 << SUMMER_PIN); _delay_ms(3.8); } else hilf = 500; hilf--; } .... int main() {
schlecht, oder? Wobei das Hex-File nciht exakt > die Größe angiebt, die kann man aber sehr leicht im AVR-Studio ablesen, > in der Ausgabe beim Compilieren. Wirklich ordentlich runter gegangen. Ich kompiliere mit WinAvr und überspiele das Programm mit AVR-Studio...ich halte mal ein Auge offen, wo ich
-
Thread
Günstiger uC mit hoher Taktfrequenz
schnellem Flash und FIQ vielleicht _ein bischen_ schneller als der AVR. Kostet um die 2 Ören.
Nimm nen AVR und übertakte den ordentlich, der Rekord liegt glaub ich grad bei 32 MHz. :D
-
Thread
24 Bit über Pin auslesen Takt/Daten ohne Interrupt
Da sich das Signal aber auch an der fallenden Flanke ändert, muß man dann aber vor der Flanke einlesen. > Das Erste 24 Bit Paket kann man > ignorieren. Und wie erkennt man das erste Paket? Peter
sind bei low stabil. Also erst etwa 80µs high abwarten und dann 24 mal nach der fallenden Flanke einlesen. Peter
-
Thread
schaltplan ok? (+/- 5v netzteil, verstärker regelung, userinterface)
liegt, die den Transistor ansteuert Woraus entnimmst Du das? Ich lese im Datenblatt: "The I/O ports of the AVR are immediately reset to their initial state when a reset source goes active." Alles was nach dem Reset passiert ist unter meiner Programmkontrolle, also wenn der Transistor Basisstrom
ansteuert > Micha H. schrieb: > Woraus entnimmst Du das? > Ich lese im Datenblatt: > "The I/O ports of the AVR are immediately reset to their initial state > when a reset source goes active." Und? Nichts substanzielles dazu zu sagen?
-
Thread
Wert des ADU auf Display ausgeben / ATtiny / Assembler
Zu Beginn sollte man sich die Port-Aufteilung am Mikrocontroller überlegen. An welchen Port soll das Display angeschlossen und in welchem Modus (4/8-Bit) soll es angesteuert werden? Kompletten Schaltplan zeichnen. Zur ASM-Programmierung
Displays (HD-44780 kompatibel), sowie eine Routine zur Ausgabe einer 8 Bit-Zahl. Beides ist in den AVR-Tutorials in ASM zu finden und muss nur noch an die verwendeten Ports angepasst werden ... Ralf2008
-
Thread
D-Flipflop mit tiny13 als Drehgebererkennung
http://www.myplace.nu/avr/minidds/index.htm = Jespers's pages der Vollständigkeit halber. LG Rudi
... Mit C habe ich wenig zu tun, liebe Assembler, aber der Code ist ja nur kurz. Werde mich einlesen.
-
Thread
Open source Autoradio
. effektiv steht einem nicht mehr RAM zur Verfügung als bei einem beliebigen anderen CortexM3 oder AVR32 mit internem 512kB Flash und 64..128k internem RAM. Andererseits kann man für CortexM3, ARM7/9/11 und AVR32 den OpenOCD, Eclipse und (AVR)GCC verwenden, die Windowser nutzen eben Yagarto. Der OpenOCD-USB
AVR die mag ich ned früher gabs mal die geilen AVR32 mit 150MHz + aber heut nimmer deswegen eher ARM9.
-
Thread
Fragen Temperaturlogger (Hard-/Software)
Sektor nach dem anderen > mit Datum und dann meinem Temperaturwert füllen? wenn du das EEPROM im AVR meinst, das kannst du byteweise beschreiben
> der MAX invertiert aber nicht nur! aber die meisten PCs können TTL-Pegel als RS232 einlesen, sofern nicht invertiert (meist sogar 0..3.3V)
-
Thread
RC5 Sender Code, Wo ist der Wurm drin?
verarbeitet. Bei Deiner Version wird PIND bei jeder if-Abfrage neu eingelesen (PIND ist als volatile in den avr-libc-headern definiert) und der Status kann sich bis zum letzten if (immerhin 12 Stück!!!) schon verändert haben. Spiel das mal im Simulator durch. Du solltest deshalb den Wert auch in einer Variablen
als Original gepostete und meine oben veränderte) folgendes: Es wird der Wert/logische Pegel des Ports PIND gelesen und in einer lokalen Variablen gespeichert. Dann wird geprüft, welcher Pin in PIND zum Zeitpunkt des Einlesens Null war. Beim ersten gefundenen Nullwert wird der Variablen cmd ein RC5-
-
Thread
WinAVR "unerklärliche Fehler beim compilieren"
bool Taste_x; bool Taste_4; unsigned int Lux_Ausgabe(void) // Makros #define SET_BIT(PORT, BIT) ((PORT) |= (1<<BIT)) // Einzelbit auf Port SET #define CLR_BIT(PORT, BIT) ((PORT) &= ~(1<<BIT)) // Einzelbit auf Port RESET // Funktionsprototypen void initDisplay(void); //
====== // TASTENABFRAGE void SwitchQuery() ***{ // Umschaltung Port C, Bit 0..3 auf Eingang CLR_BIT(PORTD, ENABLE); // Enable-Signal auf 0 DDRC = DDRC & 0xF0; // Port C auf Eingabe schalten PORTC = 0x0F; // Pullup-Rs eingeschaltet
-
Thread
AVR: Strom & Span messen, Leistung errechnen, S0 Impulse verarbeiten und via LAN bereitstellen
hallo Community, zum ersten, ich neu hier und wünsch euch erstmal einen guten Abend. zum zweiten habe ich ein relativ großes Projekt, quasi auf der Zunge liegen, und brauche hilfe was die umsetzung via Mikrokontroller angeht. Ich habe mit Mikrocontroller bis jetzt noch nicht viel Erfahrung, ich hoffe aber, viel zu lernen, denn es ist ein sehr interessantes Thema. Aber ich fang wohl erstmal von vorn an. Ich arbeite in der Veranstaltungstechnik, wir erstellen mobile Stromversorgungen. Unser Netz ist fast immer Sternförmig aufgebaut, sprich eine zentrale Einspeisung und viele Abgänge
-
Thread
Delta- Mischer mittels AVR
gebastert, der nun einen Delta- Mischer bekommen soll. Und genau den wollte ich mir selber machen mit nem AVR. Das Prinzip vom Mischen der Kanläe verstehe ich ja auch das verrechnen (invertieren) geht wunderbar. Nur bei der Signalausgabe happert es ein wenig. Ich habe schon so einiges versucht, aber mein Oszi
Jeah, es geht, ich musste aus dem "Sbi PinC,1" ein "Sbi PortC, 1" machen :) jetzt funzt es! Danke Für eure Hilfe, ich hoffe ich werde es noch ganz hinbekommen! ;-)
-
Thread
JTAG MKII Pin-Belegung
Hallo Hab hier ein AVR JTAG MKII Interface. Leider habe ich nichts über die Pinbelegung (Port Mitte rechts) gefunden und weiß somit nicht wo MISO, MOSI usw. hingehört. Kann hier vll jeman helfen? Gruß Peter
Kabel zusammengekleistert, doch funktionieren tut die Sache nicht so recht. Wenn ich die CPU mittels AVR Studio einlesen will, bliken zwar allerlei Leds auf de Interface, dann kommt die Meldung, dass die CPU wohl keinen Strom hätte... Kann man das Interface iregendwie testen, z.B. mit einer Led auf
-
Thread
CP/M auf ATmega88
/avrcpm/trunk/avr/dsk_mgr.asm M /avrcpm/trunk/avr/init.asm M /avrcpm/trunk/avr/macros.inc M /avrcpm/trunk/avr/svnrev.inc M /avrcpm/trunk/avr/utils.asm M /avrcpm/trunk/avr/virt_ports.asm M /avrcpm
M /avrcpm/trunk/cpm/CFGACPM.LIB * cpm/BIOS.MAC - conin/const: Use function 'uartstat' (port 3) instead of 'constat' (port 0). constat will be removed soon. * avr/virt_ports.asm - Mark 'constat' as deprecated. * avr/* - More lds/sts --> ldd/std changes. ----------------------------
-
Thread
Wo ist der Denkfehler? ADC -> PWM
Potentiometer ich möchte eine Lampe dimmen) und (OCR1 der Ausgang PD7 die "Lampe") [c] #include <avr/io.h> #include <avr/interrupt.h> #define F_CPU 8000000UL ISR(ADC_vect) { // Wert im ADCH auf Port C ausgeben OCR1A = ADCH; } int main(void) { // PORTD als Ausgang konfigurieren
Im übrigen sollte vermutlich auch noch die include <avr/interrupt.h> inkludiert werden
-
Thread
verständnisfrage timer mega48
, an dem du die Spannung leicht sichtbar machen kannst [C] #define F_CPU 16000000 #include <avr/io.h> #include <util/delay.h> #define LED_PORT PORTB #define LED_PIN PB1 int main() { while( 1 ) { LED_PORT |= ( 1 << LED_PIN ); _delay_ms( 1000 ); LED_PORT &= ~( 1 <<
COMPA_vect) { if(timer1==0)timer1=1; } SIGNAL(INT0_vect) { freq++; } void set_ports(void) { port_spi_7SEG_cs(); //CS 7SEG port_spi_sck(); //SCK port_spi_mosi();//MOSI port_spi_miso();//MISO SEG_cs_high(); } void main(void) { set_ports(); init_7seg1(
-
Thread
Ram-Nutzung C/ASM-Mischprogramm
echte Männer lesen sowas nicht, aber du musst es ja nicht weitersagen ;-) http://www.nongnu.org/avr-libc/user-manual/group__asmdemo.html Oliver
Nun gut, danke für die Tipps und Hinweise. Ich werd mich ersteinmal tiefer einlesen und das Konzept nochmal überdenken. :-) Grüße Christian
-
Thread
Digitales 17 Kanal Osizilloskop und Logic Analyser gratis
Interrupts bearbeitet werden? Als ich Ende der 90er (WIN95/NT40) mal was über den Parallelport einlesen musste hatte ich teilweise über 100ms Aussetzer. JL
LED-Problem gefragt wird. Also ich vergeb mal 4 von 5 **** Nach richtigem Einsatz evtl. ****+=* avr
-
Thread
Relaiskarte mit ATTiny2313
zu überspielen. Dann kannst du den Quelltext ändern. Hier ist die Basic Entwicklungsumgebung für AVR: http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=86&category_id=5&option=com_phpshop&Itemid=1
Zeile 76: Wyslij auf Port B ausgeben. Als Aufräumarbeiten kannst Du am Ende noch die Deklarationen für Calk, Calk2 und Zmienna entfernen.
-
Thread
uParse - ein kompakter und vielseitiger Parser
dem Interrupt heraus :-)). Bei einer SD-Karte würde man ähnlich verfahren. Zeile bis zum CRLF einlesen und im RAM speichern und bei CRLF den Parser dann aufrufen (Eingabestring vorher abschließen). Dadurch das der Parser keine IO Routinen anspricht/benutzt kann dieser auf jedem System (egal ob AVR
switch/case) den case für den neuen Enum hinzufügen. uParse_cfg.h ------------ UPARSE_ITEM(SET_PORT_A, "set port a = \x01", PORT_FUNC) Ausführendes C-Modul, Funktion die hinter PORT_FUNC steht --------------------------------------------------------- case SET_PORT_A : PORTA = stCmdDatas [
-
Thread
ADC nimmt die falsche Vref obohl richtig eingestellt.
adc.c kann mir bitte jemand weiterhelfen? PS. auf dem ATmega 32 läuft der ADC #include <avr/io.h> #include <avr/interrupt.h> //#include <avr/signal.h> #include "adc.h" /*! * Initialisert den AD-Umsetzer. * @param channel Für jeden Kanal, den man nutzen möchte
Boston, * MA 02111-1307, USA. * */ /*! @file adc.c * @brief Routinen zum Einlesen der AnalogeingÄnge * @author Benjamin Benz (bbe@heise.de) * @date 26.12.05 */ #include <avr/io.h> #include <avr/interrupt.h> //#include <avr/signal.h> #include
-
Thread
leichter Einstieg in ASM für AVR
Nimm das AVR-Studio. (Gibts auf der Seite von Atmel) Ist sogar ein Softwaredebugger mit drin. Vorteil ist, das man sogar seine Bascom-Hex Files damit einlesen kann und debuggen kann... ;) (Und man sieht, was
So, habe jetzt im AVR Studio den Simulator eingeschaltet und einen Mega8 ausgewählt. Dann folgendes Programm eingegeben, es soll ein Brummen (Rechteck) an Port B, Bit 0 ausgeben: .equ c1 = 0 ; Bestimmt die Tonhöhe
-
Thread
Port wechseln für LCD-Display
Also in den Programmausschnitten ist nichts zu sehen. Gibt es im Programm noch Routinen die auf Port A bzw. C zugreifen bzw. Sonderfunktionen an den Pins aktivieren? Evtl. JTAG mal über die Fuses abschalten (wenn du ISP programmierst natürlich). avr
ließ dir mal das Datenblatt durch wie alles funktioniert. Im Prinzip gibts du die Daten an einen Port aus und musst dann über einen anderen Port ein paar Steuerleitungen ändern. Daten vom Eingang einlesen und Daten aus dem Latch an den Ausgang geben, dann Eingänge wieder hochohmig schalten und der
-
Thread
ADC wert über RS232 senden
) #error Systematic error in the baud rate more than 1% and thus too high! #endif #include <avr/io.h> #include <stdlib.h> #include <inttypes.h> #include <util/delay.h> void uart_Init() { UBRRH = (unsigned char)(UBRR_VAL>>8); UBRRL = (unsigned char)UBRR_VAL; UCSRB |= (1
AGND um die beide anzuschliessen, ich nehme also an dass es vom STK500 schon gemacht wurde. am PORTE/AUX schliessen ich an PE4 (REF)-------100nF--------PE5 (GND) ist das so richtig ?
-
Thread
PWM Invertieren
> > > > Was willst du damit machen? Ich will bei jedem Compare Match den Wert am ADC einlesen um daraus einen Strom Messen. Gruß
und die bits COM1A1/COM1B1 COM1A0/COM1B0. >Ich will bei jedem Compare Match den Wert am ADC einlesen um daraus >einen Strom Messen. Dann tu das doch einfach. MFG Falk
-
Thread
Problem mit if-Anweisung im USART-Receive-Interrupt AtMega128
// Clock Speed #define BAUD 9600 #define MYUBRR (FOSC/16/BAUD)-1 #include <avr/io.h> //Deklaration #include <util/delay.h> #include<avr/signal.h> //fuer Interrupt #include<avr/interrupt.h> #include <stdio.h> #include <string.h> #include "USART.h" static char buffer
buffer[0] = '\0'; // damit einlesen() nichts auswertet s = 0; USART_Transmit_String("gestoppt"); } else if( strcmp(buffer, "Weiter") == 0 ) { TIMSK |= (1<<TOIE0); buffer[0] = '\0'; // damit einlesen
-
Thread
AVR8 SoftCore Problem
Hi Leute, hab folgendes Problem mit dem AVR8 SoftCore: Ich habe den soft µC auf meinem Nexys2 Board zu laufen. Mit simplem Code wie z.B. Portbits wackeln lassen oder UART Sequenz an dem PC senden, Ports einlesen funktioniert alles wunderbar
Der sog. "AVR8" ist der AVR Core von Ruslan Lepetenok, downloadbar von Opencores: http://opencores.org/project,avr_core Jack Gassett von Gadget Factory (www.gadgetfactory.net/gf/project/avr_core/) hat nur ein
-
Thread
Heavy-Metal-Maschine von Elektor
Potis sind für die Anwendung natürlich wesentlich komfortabler als Druckschalter. Aber schafft der AVR denn auch alles gleichzeitig, fünf unabhängige Rechteckoszillatoren, deren EXOR-Verknügpung UND das Einlesen von fünf AD-Werten? Meine Idee wäre, die Potis nur auf Knopfdruck einzulesen. Dann müßten
.equ RS232_Port = 2 ;PortB Ausgang .equ Switch_PT100 = 2 ;PortA Ausgang .equ Switch_PT1000 = 3 ;PortA Ausgang .equ Relais_Motor_ON = 4 ;PortA Ausgang .equ HCT4094_Strobe = 5 ;PortA Ausgang
-
Thread
MiniLA Version MockUp
Stechbrücken für externes Netzteil oder Huckepack-Leiterplatte für > diejenigen die unbedingt 2-3 USB-Ports opfern wollen um ein DC/DC > Wandler daran zu betreiben. na eher 1-2 ports.
viele möglichkeiten, gerade für kleine huckepack platinen gut geeignet (ob für treiber oder jtAG port)
-
Thread
[AVR32] NGW100 - ttyS0 mit select() -> FD_SET Segmentation fault
npbOutFile.close(); /* Serielle Schnittstelle öffnen & konfigurieren */ fd = open_input_source(port); /* Schleife zum einlesen von Daten an der Schnittstelle */ while (loop) { Timeout.tv_usec = 0; // Millisekunden Timeout.tv_sec = 3; // Sekungen /
*****************************************************************************/ /* Funktion zum einlesen der Daten hab ich raus genommen, soweit kommt er ja nicht */ /***********************************************************************************/ int open_input_source(int port) { int fd
-
Thread
Pollin MOTOROLA VIP1710
Schnittstelle > verwenden? > ... > z.B. eine RelaiseBox ansteuert... Ich würde da eher den USB-Port verwenden. http://www.ulrichradig.de/home/index.php/avr/usb-relaiskarte
Hallo ich möchte einen AVR am seriellen Port der Box betreiben. Die Hardware dazu hab ich auch schon. Jedoch will mein AVR bei der hohen Baudrate einfach nicht mitspielen. Deshalb meine Frage: * Kann ich die Baudrate des
-
Thread
2 verschiedene gnds verbinden
das gnd deiner avr-spannungsversorgung, ist das mit der erdung verbunden? (also der in der steckdose) und der usb-port: in nem laptop? od. pc? sofern die spannungsversorgung von deinem avr nicht geerdet ist dürftest
dann hat es keinerlei chance einen bezug zum gnd zu haben und es ginge auch bei einem "geerdeten" avr)
-
Thread
Relaiskarte mit min 23 ausgängen und eingängen für den USB port
ja dafür muss ich dann ja vier USB ports benutzen was schon ganz schön viel ist zumindest für meine anwendung
Karl heinz Buchegger schrieb im Beitrag #1671281: > Ackere das AVR-Tutorial durch, mach Vorübungen, lies dich ein, Winfried J. schrieb im Beitrag #1671536: > Der AVR ATMEGA 32 ist in 4 wochen - 4 Monaten hinreichend erlernbar > > Programmiersprache C der
-
Thread
EEPROM Problem unter Assembler
eine bestimmte datei lesen will muss ich ZL und ZH die Daten hineinladen, also bekomme ich bei einlesen inr16, EEDR die Daten die ich haben möchte, so habe ich das verstanden
Nur dass ich keinen AVR kenne, dessen EEPROM bis zur Adresse 3600 reicht... ;-) Die Adressen binär anzugeben ist großer Quatsch, das macht die Sache nur unnötig unübersichtlich. Man gibt Werte immer in dem Format an,
-
Thread
Auswahl des richtigen µc
> -Befehle über comport/usb angekommen > -Soll Zündspule eingeschaltet werden (Timer starten und Port schalten) > -Soll Kraftstoff Eingespritzt werden (Timer starten und Port schalten) > -Übertragen der Motordaten an den Laptop (gaaaannnnz später vielleicht > mal per Funk) > > Diese beiden µc
Verständniss Also 4 Timer sind als freie Timer vorhanden die anderen beiden belegen ja die DAC Ports und die Motorports es existieren aber trotzdem ISR für diese ports für Compare Overflow ? Wie würdet ihr die Spannungsversorgung regulieren ? Ich dachte an zwei Festspannungsregler 3,3Volt mit
-
Thread
ATmega644 16bit Timer Compare Interrupt
// Daten am PortD ausgeben unsigned char PortD_IN(char); // Daten am PortD einlesen // ***Funktionen für Datenspeichern*** // -----------------------------------
*Die Stromeinstellung einlesen*** // ----------------------------------- Wert = PortD_IN (Schalter2); // PortD (Stromkanaleinstellung) einlesen n_Stromwerte = Wert & 0x0F; // Wert
-
Thread
Programmgeschwindigkeit bim XMEGA viel kleiner als Taktfrequenz?
= 0x02 oder gleich Toggeln PORTE.OUTTGL = 0x02
auf 3 und 5 (inkl. Programmrücksprung) reduziert, thanks! Werde mich dann mal in Assembler in WinAVR einlesen müssen, habe dies bisher immer nur eigenstänig benutzt, ohne Einbindung in C.
-
Thread
4 stellige 7-Segment Anzeige fernbedienen
sollen und welchen BCD-Umsetzer/Treiber ich dann nehmen kann. Es sollte es nur darum gehen welche Ports wie beschaltet werden. Das mit den XTALs ist ein Argument, hatte gedacht der AVR hat intern ne ausreichend gute Zeitbasis. Naja, ich steck da nich so drin, ich programmier das Ding nich, ich löte nur
Sind Eingänge mit zugeschalteten Pullups. Die Common Anschlüsse sind active Low. Schalter1 einlesen: 1) C1 low schalten 2) Eingangspins einlesen 3) C1 High schalten Schalter2 einlesen: 1) C2 low schalten 2) Eingangspins einlesen 3) C2 High schalten u.s.w gruß gtf
-
Thread
PHILIPS VPx500 Kernel/System Development
the wiki. I think JTAG will give better performance of uploading a kernel to the phone than serial port does....
somewhere, so that others can use it as well. Greetings, Chris Edit: Same goes for serial ports as well. A real serial port will give you the full speed. A USB adapter will almost never give you the full 115200 baud. It's simply because of the way USB serial adapters work (one 64 byte package
-
Thread
sensoren auswerten und fahren: Nebenläufigkeit?
das wäre ja dann so etwas wie Nebenläufigkeit, oder? Cool, das klingt gut. Ich werde mich da einlesen. Danke auch für den Code!
ich das ADIE-Bit lösche, kann ich Messungen vornehmen. Seht ihr einen Fehler? [c] #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <stdint.h> #include "motor.h" #define AUSWEICHENTFERNUNG 70 #define MESSUNGEN_ENTFERNUNG 3 uint8_t entf=0; ISR(ADC_vect)
-
Thread
Probleme mit Atmega162 und Timer0
hoffe, dass ihr mir erklären könnt warum;) Ziel des Programms ist es, dass ich eine 8 bit Adresse am Port C einlese, 6 addiere auf den Port B ausgebe und nochmal 6 und das dann auf den Port D ausgebe. Benutze einen atmega162 Anfangs habe ich das über einen Pin Change versucht, was dazu führte, dass
was er soll. Der Teil-Erfolg kam, als ich deinen Rat befolgt habe und ich plötzlich alle Pins von Port C ansprechen kann und ich mich bei einem früheren Projekt schon darüber geärgert habe:) Davor hat er auf keine Eingabe von PortC 6 &7 reagiert.
-
Thread
AVR 8-Bit Software
Auswirkung eines Fehlers besonders groß ist. Gegenbeispiel: Wenn ich jede Millisekunde meine Ports einlese, um sie anschließend zu entprellen, und das Ergebnis in main() weiterzuverarbeiten, ist es nicht sinnvoll die gespeicherten Daten zu sichern, da sie sofort wieder aufgefrischt werden und sich
MarioT schrieb: > Auf einem AVR? Warum nicht?
-
Thread
Hilfe zu Drehencoder-Auswertung nach Wiki
Den Code von PeDa http://www.mikrocontroller.net/articles/Entprellung#Komfortroutine_.28C_f.C3.BCr_AVR.29 kapiere ich irgendwie wie nicht und ich bräuchte den ja auch nur für einen Taster und nicht einen ganzen port. :-( Kann mir jemand helfen wie ich vorgehen sollte. Es muss kein fertiger Code sein
Code von PeDa > http://www.mikrocontroller.net/articles/Entprellung#Komfortroutine_.28C_f.C3.BCr_AVR.29 > kapiere ich irgendwie wie nicht und ich bräuchte den ja auch nur für > einen Taster und nicht einen ganzen port. :-( Da der in C ist, ... ;-) > > Kann mir jemand helfen wie ich vorgehen
-
Thread
atmega8 Flip flop
in r16, PINB ; an Port D anliegende Werte (Taster) nach r16 einlesen out PORTD, r16 ; Inhalt von r16 an Port B ausgeben ;rjmp loop ; Sprung zu "loop:" -> Endlosschleife ; Daten
in r16, PINB ; an Port D anliegende Werte (Taster) nach r16 einlesen out PORTD, r16 ; Inhalt von r16 an Port B ausgeben ;rjmp loop ; Sprung zu "loop:" -> Endlosschleife ; Daten
-
Thread
AVR C: Kann man den kompletten Port gleichzeitig einlesen?
Kurze Frage... kann ich in C einen kompletten Port gleichzeitig einlesen? Ich meine würde sich bei einer 1Byte Variable ja durchaus lohnen wenn man komplett einlesen kann anstatt alle Pins einzeln durchzuschieben. Bin gerade darüber und frage mich
>>> kann ich in C einen kompletten Port gleichzeitig einlesen? Ja. [c] uint8_t port; port = PORTA; [/c] Das resultiert dann im Assemblerbefehl IN. Das Gegenteil wäre OUT: [c] PORTA = 0x55; [/c] Aber vermutlich willst du gar nicht
-
Thread
Wo kann ich eine Sample & Hold Schaltung bestellen?
lediglich einen Mikrocontroller mit integriertem Analog/Digital Wandler. Kann zum Beispiel jeder Mega-AVR, viele Tiny-AVRs und die XMegas. Wie man die programmiert, findest Du hier im Tutorial.
konfigurieren - Timergesteuert ist folgende Schleife fortwährend abzuarbeiten: 1. Füllstand einlesen (A/D-Wandlung starten, Wert lesen wenn fertig) 2. Füllstand auf Display ausgeben (A/D-Wert für LC-Display aufbereiten und über 8-/4-bit-Port an's Display ausgeben) -> Wert bleibt bis zur nächsten
-
Thread
AVR-C Compiler Verständniss-Problem bei AVR-Controller
Programm eines ehemaligen Kollegen debuggen und bin auf folgendes gestoßen: Zur Info: Ich verwende den AVR-gcc mit dem AVR-Sim Version 4 Im globalen Teil wurde folgendes deklariert (nur RxF ist wichtig!): #define BIT(x) (1<<(x)) // Schiebt Bit auf richtige Position (Macro) #define WR PC1
// PORTD hier als Eingang PORTC &= ~BIT(RD); // RD 0 setzen => Daten jetzt einlesen asm volatile ("NOP"); // warten bis Daten anliegen Wert = PIND; // Daten von PORT einlesen PORTC |= BIT(RD); // RD wieder auf 1 setzen return Wert