-
Thread
Atmega 328p & PCF PCF8574: I2C Adresssuche
I2C-Kommunikation überhaupt aufgebaut werden kann. In Anlehnung an diesen Beitrag (https://www.mikrocontroller.net/topic/334653#3904005) und der I2C-Lib von Peter Fleury habe ich folgenden Code geschrieben: [c] #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <stdint.h> #include <util
konnte. Hier also der überarbeitete Code (mit Ansteuerung von LEDs am PCF8574): [c] #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <stdint.h> #include <util/twi.h> #include "i2cmaster/i2cmaster.h" // F_CPU already defined in Makefile // #define F_CPU
-
Thread
Programmierstil so für Mikrocontroller OK? [C]
folgendes "Material": - Atmel Studio 7 - STK600 mit Atmega1284-PU @ 16MHz Main.c: [c] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include "Lampe.h" #include "TimerTrigger.h" #define LED0 &PORTB, &DDRB, PINB0, LOWACTIVE #define LED1 &PORTB, &DDRB, PINB1, LOWACTIVE
Timer_ClearState(); } } [/c] Lampe.h: [c] #ifndef LAMPE_H_ #define LAMPE_H_ #include <avr/io.h> #define LOWACTIVE 0 #define HIGHACTIVE 1 #define ON 1 #define OFF 0 void LampeSwitch(volatile uint8_t *port,volatile uint8_t *ddr, uint8_t pin, uint8_t lowOrHighActive, uint8_t OnOff
-
Thread
Frage für nebenbei
Phantasie des Lesers und dessen Glaskugel und führen zu den alseits "beliebten" Diskussionen im µC net. Auch falls der Fehler offensichtlich sein sollte, mag ich da gar nicht näher hinsehen.
nicht einen ADC nutzen? So würde ich das ohne Arduino mit einem ATtiny13 machen: [c] #include <avr/io.h> #include <util/delay.h> int main() { DDRB = 0b00000001; PORTB = 0b00011000; ADMUX = 2; ADCSRA = (1<<ADEN)+(1<<ADSC)+(1<<ADATE)+(1<<ADPS2); _delay_ms(1000);
-
Thread
if condition schöner schreiben?
sind Pointer schon verschwurbelt und Arrays die bessere Wahl. Die Nutzung von Bitsetz-befehlen beim AVR verlangt eine IMHO verschwurbelte Schreibweise mit geshiftetetn bits. http://www.mikrocontroller.net/articles/Bitmanipulation#Standard_C_2 Statt zu grübeln ob dann vielleicht doch die langsamer Variante
kommt dann wieder bei Datentypen oder Algorithmen zum Tragen (HashMaps vs. Listen, Bäume, Sortieren, IO Zugriffe, Caching usw.). Und da steht Effizienz in keinem Widerspruch zu sauberem Code.
-
Thread
Warum hier ein "while"?
Hallo, habe hier folgenden Code entdeckt: http://www.mikrocontroller.net/topic/364300#4095797 [c] #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { //Make Start Condition on I2C Bus TWCR = (1<<TWINT)|(1<<TWSTA)|(1
-
Thread
Programmgeschwindigkeit Arduino
nutzen, das unterscheidet sich exakt NULL von normalem C im Atmelstudio, denn es ist ja der gleiche avr gcc Compiler.
setzen #include "config.h" #if USE_ADC #ifndef _ADC_H_ #define _ADC_H_ #include <avr/io.h> #include <avr/interrupt.h> #include "httpd.h" //für Variablen Array #define ANALOG_OFF ADCSRA=0 #define ANALOG_ON ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<
-
Thread
AVR: Pointer in Register - wie definieren?
Stefan U. schrieb im Beitrag #4884434: > Genau das geht zumindestes bei AVR nicht, da alle Register über RAM > Adressen erreichbar sind, IO-Register sind auch über RAM-Adressen erreichbar, und die stehen noch nach den CPU-Registern. Die kann man unmöglich in einen
der CPU-Register dann übrigens fallen gelassen. Dadurch ist dort auch der Offset 0x20 bei den IO-Registern verschwunden, den man sonst beim AVR zwischen Adressierung per IN/OUT und Adressierung per STS/LDS hatte.
-
Thread
Horizon EDA [War: Neues, halbfertiges Elektronik-CAD-Programm]
zwei Netze den selben Namen gibt. Man muss ja den Namen, wenn er schon mal vorhanden ist, per "Move net segment to other net" oder "Move net segment to new net" zuweisen. Was spricht dagegen, Horizon dies implizit machen zu lassen, wenn ein Netzname eingegeben wird der schon mal vorhanden ist? Weil der
Netze den selben Namen gibt. > Man muss ja den Namen, wenn er schon mal vorhanden ist, per "Move net > segment to other net" oder "Move net segment to new net" zuweisen. Was > spricht dagegen, Horizon dies implizit machen zu lassen, wenn ein > Netzname eingegeben wird der schon mal vorhanden ist
-
Thread
Füllstandssensor LLE von Honeywell
LLE-102000/3/index.html?ACTION=3&LA=5700&ARTICLE=151375&GROUPID=6677&artnr=LLE+102000 An meinem AVR-NET-IO board angeschlossen. Rot auf VCC mit 5V Blau auf GND Grün am digitalen Eingang. Egal in welche Flüssigkeit ich dn Sensor halte es liegt immer High an. High sollte aber nur bei Luft anliegen
Misst du den Zustand nur über das NetIO oder auch mit einem Multimeter?
-
Thread
SDR-Dekoder für TFA KlimaLogg Pro/IT+ Temperatursensoren
Danke für die Rückmeldung. Wenn ich die hass.io Plattform nutzen möchte, bleiben mir 2 Möglichkeiten. Entweder tfrec+MQTT Client in einem Docker Container oder auf einem seperaten PI. Hass.io ist als reine Trägerplattform gedacht. Da läuft Home
it better? I am a child of Windows and I am just getting to know the nooks and crannies of Linux, IoT, etc.
-
Thread
Abfrage von ca. 130 Tasten
Wolfgang schrieb: > Sowohl AVR als auch > Schieberegister hätten gerne Gleichspannung. Daniel A. schrieb: > den gemeinsamen plus
https://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister#Porterweiterung_f.C3.BCr_Eing.C3.A4nge
-
Thread
Inline-Assembler: was mache ich falsch?
mit der Grießkanne verteilst, dann hat ein optimierender Compiler keine Chance, auch kein CodeVisionAVR — es sei der ist nicht volatile-korrekt. Selbtst mit #include <avr/io.h> lässt sich der Code nich übersetzen: [pre] foo.c: In function 'channel': foo.c:96:13: error: 'gedackt16' undeclared (first
Deklarationen geraten; vermutlich Tabellen für Hüllkurven im Falsh. Anmerkungen unten [c] #include <avr/io.h> #define XX extern const __flash uint8_t XX gedackt16[]; XX gedackt8[]; XX principal8[]; XX floete4[]; XX oktave4[]; XX qufloete[]; XX floete2[]; XX oktave2[]; XX terzfloete[]; XX
-
Thread
Attiny45 Programmierung
>ob ich den attiny auch mit C programmieren kann http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial Rest: Google "Attiny 45 Arduino programmieren" Frage zu den Pins steht im Datenblatt oder auch im ersten Link.
LED // Hausbeleuchtung // #include <util/delay.h> // Einbindung Datei Pause #include <avr/io.h> // Einbindung Datei Ausgänge int main(void) { DDRB=0b0001111; // Port B 0-3 auf Ausgang schalten while(1) // Programmschleife {
-
Thread
SD Karte(FatFs) verträgt sich mit ENC28J60 nicht
am CS Signal nicht, 10k gegen +5V. Dann kann man den AVR auch ohne Probleme uns sinnlose Längswiderstände am SPI programmieren. https://www.mikrocontroller.net/articles/AVR_In_System_Programmer#ISP-Pins_am_AVR_auch_f.C3.BCr_andere_Zwecke_nutzen
mit dem fehlenden Pegelwandler, beim Lesezugriff kammen durch Störsignale soradisch falsche Daten im AVR an und die Software hat Unsinn gemacht. Möglicherweise ist der Fehler aber noch drin, tritt aber nur sporadisch auf. Siehe https://www.mikrocontroller.net/articles/Fehlersuche#Allgemeine_Hinweise
-
Thread
ADC wandelt nicht
geschrumpft. Die Ausgabe über den Bus und den ganzen Rest habe ich rausreduziert: [C] #include <avr/io.h> #include <avr/interrupt.h> #include <inttypes.h> #include <stdbool.h> #define F_CPU 16000000ULL #include <util/delay.h> uint16_t uadc; void PORT_Init() { PORTE = 0b00011000
Vielleicht liest du den Wert des ADC nur falsch aus? --> http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#16-Bit_Register_.28ADC.2C_ICR1.2C_OCR1x.2C_TCNT1.2C_UBRR.29
-
Thread
Wie stellt Ihr eure Daten da (Seriel)?
Hallo. Ich habe einen kleinen AVR (MEGA32) auf dem eine Datenerfassung (22*Temperatur meiner Heizung)läuft. Ich habe zusätzlich auch Parameter die ich ändern muss. So nun hängt der AVR an der SIO und kann Daten ausgeben und empfangen
kein Problem. Auch dem Prozessor USB beizubringen oder ein ENC28J60 dran zu bauen oder gleich ein AVR-NET-IO Modul zu kaufen oder ein ESP8266, sind zwar alles schöne Sachen und wären technisch auch nicht besonders schwer. Besonders weil ich das alles in anderen Projekten benutze/benutz habe. ABER
-
Thread
fehler im lehrheft Gesperrt
Genau das Thema hatten wir gestern schonmal. https://www.mikrocontroller.net/topic/416600#new
Leute so, wie es oben geschieht? Naja, eine historische (Fehl)entscheidung, die man bis heute beim avr gcc nicht korrigiert hat. Siehe https://www.mikrocontroller.net/topic/394065#4527806
-
Thread
Füllstandsanzeige Zisterne
Hallo, und erst ein mal Dankeschön für Eure Antworten. @sylaina mit AVR-Net-IO bzw. Siemens Steuerungen oder Logo. @jetztnicht stimmt, weiß ich nun auch ;) @gustav Danke für den Tipp ich hab das gleich mal geändert... @dolivo die Sensoren hängen an wechselspannung
Frank schrieb im Beitrag #4862734: > @sylaina mit AVR-Net-IO bzw. Siemens Steuerungen oder Logo. Damit könnte man eine Füllstandsmessung auch mit z.B. Ultraschall (US) durchführen, ganz ohne sich über Korrosion und ähnliches Gedanken machen zu müssen
-
Thread
Alternativen zu VHDL und Verilog
Praktikum mit SystemC gemacht: https://de.wikipedia.org/wiki/SystemC War dann ähnlich wie C++ für einen AVR :)
https://icestudio.io/
-
Thread
3x4 Matrix Tastatur mit PCF 8574 auslesen
dem PCF8574 lesend und schreibend auf die I/O Portpins zugreifen zu können. Ich verwende einen AVR µC und die Idee: Peter Dannegger, 18.06.2011 aus dem Beitrag: # http://www.mikrocontroller.net/topic/222421#2229881 Die Codeidee habe ich erweitert und auch gleich eine Tastenentprellung über einen
Danke für eure Hilfe. Habe das von Peter dabei. [c] #include <avr\io.h> #define NOP(); asm volatile("nop"::); #define KEY_PIN PINB #define KEY_PORT PORTB #define KEY_DDR DDRB // Pin 0..3 = column 1..4 // Pin 4..6 = row 1..3
-
Thread
VoIP Client (nur IOs) mit AVR + ESP8266 o.ä.
Oder kann man mit dem AVR auf die Anrufliste der Fritzbox zugreifen?
Als Basis könnte man http://tomeko.net/projects/rtp_pager/ benutzen. Den AVR braucht man nicht, der ESP8266 ist selbst programmierbar.
-
Thread
Haussteuerung Attiny2313 20-PU / enc28J60 / Raspberry pi
im 433/868 Mhz-Bereich verwendet. (CC1101) Was ich im Moment auch sehr interessant finde ist das ioBroker-Projekt, das alle smartHome-Geschichten vereint. (Läuft auch auf Raspi) Dort lassen sich vorhandene Automationen wie FHEM, Homematic ect. unter einen Hut bringen... ja sogar Amazon Dash-Buttons
nicht mit jedem einzelnen Byte geizen. Schau Dir mal dieses Projekt an: http://stefanfrings.de/net_io/index.html Ich schätze, das kannst du als Basis verwenden. Immerhin habe ich damit ein paar Licht-Steuerungen und Alarmanlagen gebaut. Läuft definitiv stabil.
-
Thread
SSD1306/1309 Library zum Darstellen von Text auf OLED Displays
Rest der Fehlermeldungen sind alles Folgefehler weil die main.h fehlt (u.a. wird in der main.h die avr/interrupt.h includiert ;)) [c]// // main.h // OLED-Demo // // Created by Michael Köhler // // #ifndef main_h #define main_h #include <avr/io.h> #include <avr/sleep.h> #include <avr
status 1 > 'lcd_display' was not declared in this scope Dann zeig mal deinen Code! im Verz. AVR-sample befindet sich ein Beispiel. [c] /* * main.c * * Created on: 16.08.2018 * Author: harry */ #include <avr/io.h> #include <stdio.h> #include "lcd.h" int main() { char
-
Thread
Timer2 Atmega328
natürlich das Togglen aus der ISR vom Timer0 herausgenommen). Nach https://www.mikrocontroller.net/topic/357883#new liegt es daran dass der Timer2 zwei Teiler mehr hat als Timer0. Aber im Datenblatt finde ich für Teiler nur das Register TCCR2B. Wo finde ich den zweiten? Gruß Kai
diesem Programm laufen beide Timer mit dem Simulator [c] #define F_CPU 8000000Ul #include <avr/io.h> #include <avr/interrupt.h> #include <string.h> #include <util/delay.h> #include <stdlib.h> ISR(TIMER0_COMPA_vect) { static uint16_t millis = 0; static uint8_t seconds = 0;
-
Thread
Tastenerkennung mit ATMega
)); ADC_Wert += ADCH; ADC_Wert = ADC_Wert / 3; } Hier die Header-Datei. #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include "DOGM204.h" #include <stdio.h> // wegen printf // Funktionen void Init_ADC (); void Init_INT0 (); void ADC_Main (); ISR
fehlt: #include <avr/io.h>
-
Thread
Kleinster und einfachster Linux Prozessor
Gerd E. schrieb im Beitrag #4845531: > http://www.vocore.io/v2.html Sieht gut aus. Hat jemand herausgefunden von wo der Versand erfolgt? Endung: IO = Britisch-Indischer Ozean Wegen Zoll.
Hi, ich werfe mal den hier ins Rennen: http://nanopi.io/nanopi-neo.html Für 8$ ist man dabei. Gruß Andreas
-
Thread
[8-bit AVR] [C] Logik Alarmsystem bzw. "Majority Logic"
Hi µC.net-Community! Ich möchte auf einem ATmega16 eine Alarmsystem-Logik in C implementieren. Die Anforderung ist trivial: Wenn zwei von drei Eingängen high sind, ist ein Alarmbit zu setzen. Dazu ist die
initialisiert zu betrachten. Als kürzeste Entsprechung in C habe *ich* Folgendes gefunden: [C]#include <avr/io.h> #define B1 (1 << 3) #define B2 (1 << 4) #define B3 (1 << 5) #define ALARMRANGE (1 << 6) int main(void){ unsigned char I = 0; for(;;){ I = ~PIND; if (((I & B1) && (
-
Thread
stm32f103c8 lässt sic nich flashen
arm-stm32f411-port/cmsis-stm32f4xx.h Lesen und schreiben z.B. so: [c] /// Read a pin. #define _READ(IO) (IO ## _PORT->IDR & MASK(IO ## _PIN)) /// Write to a pin. #define _WRITE(IO, v) \ do { \ if (v) \ IO ## _PORT->BSRR = MASK(IO ## _PIN); \ else \ IO ##
zuständigen Werte im dafür zuständigen Register gelöscht werden. [c] do { \ if (v) \ IO ## _PORT->BSRR = MASK(IO ## _PIN); \ else \ IO ## _PORT->BSRR = MASK((IO ## _PIN + 16)); \ } while (0) [/c] Die while-0-Schleife verstehe ich nicht. Die if-abfrage ist überflüssig
-
Thread
expected unqualified-id before '?' token
_________________________________________ #include "confic.h" #include "function.c" #include <avr/interrupt.h> #include <util/delay.h> #include <avr/io.h> #include "function.h" class CFlag //Hier ist Line 8 { private: char Flag; public: CFlag() { Flag = 0;
Zeig den GANZEN Code, sonst kann dir keiner helfen. Benutzt du auch den richtigen Compiler, also avr-g++ und nicht avr-gcc?
-
Thread
Atmega 32 mit Bascom ansprechen
Dafür hab ich einen USBASP Programmer. Zusätzlich zu meiner Schaltung/Platine habe ich noch ein AVR-NetIO. In Kombination mit Bascom lassen sich alle 3 Atmega 32 über den NetIO ansprechen und identifizieren. Stecke ich einen der Chips jedoch in meine Schaltung, bekomme ich beim Versuch den Chip anzusprechen
Wenn ich das Bild des AVR Net IO auf der Pollinseite richtig interpretiere, wird der Controller dort mit einem externen Quarz betrieben. Der fehlt bei Deinem Board. Eventuell ist das der Grund?
-
Thread
Ethersex hängt sich auf, aber Ping geht?
Hallo Klaus, ich hatte diese Probleme auch mal. Letztendlich war bei mir der ENC28J60 auf dem NET-IO defekt. Nach dessen Austausch lief alles wieder. Gruß Bodo
In https://www.mikrocontroller.net/articles/AVR_Net-IO_Bausatz_von_Pollin heisst es u.a. > 100nF über alle drei IC Störunterdrückung zusätzlich bestücken Besonders die fehlenden Cs am ENC hatten bei vielen, (auch bei meinem)
-
Thread
ASM Scheduler
oben so drin steht. LOD is synonym for IN/LDS depending on actual register position in AVR. Same for for STO - OUT/STS. http://www.mikrocontroller.net/topic/232408 http://www.mikrocontroller.net/topic/19964 MaWin schrieb im Beitrag #4839896: > Wo ist denn jetzt der Vorteil
Hallo, also mein AVR Assembler kennt keine AVR Befehle: STO und LOD also müssen es Macros sein.
-
Thread
AVR NET-IO (Pollin) Ethersex Onewire und Watch-IO
Nachdem ich jetzt mehrere Tage damit verbracht habe Fehler bei mir zu suchen, bin ich nun der Meinung, dass der Fehler irgendwo in Ethersex zu sein scheint. Worum geht es: Ich betreibe nun seit 3 Jahren den Net-IO mit einem ATmega32 zusammen mit FHEM. Ca. 20 OneWire Temperatursensoren sind im nicht-parasitären Modus - teilweise auch sternförmig - angeschlossen. Zustandsänderungen an 3 ADC-Ports bekommt FHEM über die "Watch IO and react" Konfiguration gemeldet. Das Ganze läuft wie gesagt seit 3 Jahren problemlos, an den E6 Quellen selbst hab ich nichts verändert. Nun wollte ich auf einen 644p bzw.
-
Thread
Embedded Systems lernen
, dafür weist du denn auch wie. (Ev. kannst du auch ein Kit von Arduino mit einem AVR kaufen und diesen aber im Atmel Studio programmieren, dass geht natürlich auch. Musst jedoch noch den Bootloader neu laden, soweit ich weiss.)
beides kaufen , ist eh nicht teuer. Das Gleiche geht allerdings auch mit einem Arduino DUE und AVR-Studio und einem Atmel-ICE.
-
Thread
[Verschenke] Diversen Elektronikschrott (WLAN Antenne, Modellbau, Leiterplatten, avr-net-io,.)
Hallo, anbei von mir aussortierter Elektronikschrott. Ich habe nichts von alldem vorher nochmal geprüft. Es ist möglich, dass einige oder vielleicht, wenn auch unwahrscheinlich, alle Dinge kaputt sind. Ich möchte deswegen auch kein Geld dafür, außer 6€ für den DHL Versand. Ich verschicke nur alles zusammen. Inhalt siehe Bilder, Fragen beantworte ich gerne. Angebote bitte per PN. Gruß Daniel
-
Thread
AVR Netio Ethersex Atmege1284p Webserver Problem
mal um Hilfe bitten. Ich weiß nicht mehr weiter. Mein Problem: Ich setze seit Jahren auf einem NetIO Ehersex ein, um ca. 20 1W Temperatursensoren und Ein-Ausgänge in FHEM (auf Raspberry) auszuwerten. Unter anderem überwache ich die digitalen Ports und steuere über ECMDSend den Raspi mit FHEM an.
Hallo C-Hater, Danke für deine Antwort. Es liegt am NetIO selbst oder am enc28j60, muss ich noch genauer checken. Bin mal vom Testboard auf das Produktivboard gewechselt, danach war der NetIO ansprechbar. Aber hast du noch einen Tip für mich, wie ich
-
Thread
Raspi und Relais schaltung
Ahnung von Elektronik das hilft mir jetzt ohne Schaltplan nicht viel weiter so wie ich es aus der Net Seite gelesen habe haben die 2 Transistoren genommen um den Strom zu verkleinern am Raspi
Ausfräsungen dienen hier wohl der Kühlung des Relais: http://www.ebay.de/itm/WeMos-Relais-Shield-Relay-IoT-ESP8266-WiFi-MCU-D1-mini-LUA-MCU-Modul-Module-/162383634649 Es gibt spottbillige China-Module auch mit recht ordentlichem Layout: http://www.ebay.de/itm/5PCS-5V-1-Channel-Relay-Shield-Module-optocoupler-For-PIC-AVR-DSP-ARM-Arduino
-
Thread
AVRCAN bekommt RX-Interrupt nicht mit
grünen Zweig. Danke das ihr bis hier gelesen habt, da ist der Code: main.c [c] #include <avr/io.h> #include <avr/interrupt.h> #include <inttypes.h> #include <stdbool.h> #define F_CPU 16000000ULL #include <util/delay.h> #include "can.h" //Variablen int8_t can_out[8];
can_get_mob_interrupt(void); #endif /* CAN_H */ [/c] can.c [c] #include "can.h" #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <inttypes.h> #include <stdbool.h> int8_t iemob[15] = { IEMOB0, IEMOB1, IEMOB2, IEMOB3, IEMOB4, IEMOB5, IEMOB6, IEMOB7
-
Thread
Schaltplan-Kritik: Atmega + RS485 + OneWire
Peter D. schrieb im Beitrag #4829596: > Der direkte IO-Pin des MC macht das Programm einfacher, aber hat den > Seiteneffekt, daß Du Interrupts für 60µs bzw. 480µs sperren können mußt, > da der AVR ja keine Interruptprioritäten vergeben kann. Und wenn
@ Uwe Bonnes (Firma: TU Darmstadt) (uwebonnes) >> Der direkte IO-Pin des MC macht das Programm einfacher, aber hat den >> Seiteneffekt, daß Du Interrupts für 60µs bzw. 480µs sperren können mußt, >> da der AVR ja keine Interruptprioritäten vergeben kann. >Und
-
Thread
Was kann man mit 16Byte an RAM machen?
wohl aber in manchen Fällen das Sparen mit Returnadressen im Stack. Es ist eben ne andere Welt als AVR. W.S.
Dampf T. schrieb im Beitrag #4833962: > Ich hatte mal den AVR LS1200 oder so, der hatte glaub kein gar RAM und > nur 1200 byte code. Der AT90S1200 ist ja der Uropa der AVR. Etwa 30 Register hat der nur. Für viele einfache Sachen reicht der völlig. Auf dem
-
Thread
ATTiny 13 Soil Moisture Sensor ADC Lese Problem
ADC2->AO LED: PB3 -> 200Ohm -> LED -> GND [c] #define F_CPU 1200000UL // 1.2 MHz #include <avr/io.h> void adc_init() { ADCSRA = (1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);// Prescaler 16: F_ADC = F_CPU / 16 = 9.6MHz / 128 = 75kHz } uint16_t adc_read(uint8_t channel) { if(channel
. Also Versuchs mal mit Vcc als Referenz. [c] #define F_CPU 1200000UL // 1.2 MHz #include <avr/io.h> void adc_init() { ADCSRA = (1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0); // Prescaler 16: F_ADC = F_CPU / 16 = 9.6MHz / 128 = 75kHz } uint16_t adc_read(uint8_t channel) { uint16
-
Thread
Ausrüstung für Mikrocontroller
Hallo, schaue mal auf der Startseite links oben auf "AVR-Tutorial" oder direkt hier https://www.mikrocontroller.net/articles/AVR-Tutorial und hier https://www.mikrocontroller.net/articles/AVR
nunmal etwas komplizierter als ein USB-Kabel irgendwo reinzustecken. https://www.mikrocontroller.net/articles/AVR http://rn-wissen.de/wiki/index.php/AVR-Einstieg_leicht_gemacht http://www.avrfreaks.net/forum/newbie-start-here
-
Thread
DTMF decoder
Telefonatmitschnitten, aber der Spezialbaustein MT8870 ist perfekt und kostet keinen Euro. [c] #include <avr/io.h> #include <math.h> int32_t MulAndDiv65536(int32_t v32, uint16_t v16) { uint32_t t0 = ((((uint32_t)v32&0xffff)*v16)+0x8000)>>16; int32_t t1 = (v32>>16)*v16; return t1+t0; } int16
Hardware-Multiplikation. Der Code unten benötigt nur noch einen ATTiny mit etwa 1.5 MHz! [c] #include <avr/io.h> #include <avr/pgmspace.h> #define nBuff (uint16_t)160 // 160 Samples pro Block -> 20ms #define fSample (long)8000 // 8KHz //##################################################### DTMF_CalcAmp
-
Thread
C, 7 Segment Anzeige im Multiplex, Atmel Studio
8 0b10010000, // muster 9 }; #define F_CPU 16000000U #include <util/delay.h> #include <avr/io.h> uint8_t Zaehler=0; int main(void) { DDRA=0b11111111; DDRB=0b11111111; DDRD=0b00000000; while (1) { PORTD=0b11111111; if(PORTD) for (Zaehler=0; Zaehler
https://www.mikrocontroller.net/articles/AVR-Tutorial:_7-Segment-Anzeige Stichwort: Multiplexen
-
Thread
Interruptroutine atmega C++
Hallo, ich möchte einen Timerinterrupt für meinen AVR in C++ erstellen. Habe mir https://www.mikrocontroller.net/articles/AVR_Interrupt_Routinen_mit_C%2B%2B durchgelesen und es versucht umzusetzen. Allerdings bekomme ich beim Kompilieren einen Error
Hier meine Lösung für ATtiny 2313: [c] #include <stdint.h> #include <avr/io.h> #include <avr/interrupt.h> #include <util/atomic.h> volatile uint32_t epoch=0; // globaler Zeitstempel in 1/10 sec. nach Start void timer_init(void) { // Timer 0 konfigurieren TCCR0A
-
Thread
Eingangsspannung an MC ohne Versorgungsspannung.
gemacht. Alternativ kann man ja den AVR in den Power-Down schicken (so schalte idR ich den AVR ab), da hat man dann quasi keine Probleme mit Signalen an den IOs.
Vcc" greifen. Und damit kann man sogar einen uC /versorgen/. Siehe den https://www.mikrocontroller.net/topic/375666#4267601
-
Thread
Atmega2560 und nrf24L01
angepasst. Mein Sender und Empfänger sehen so aus: Sender: [c] #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <stdlib.h> #include <spi.h> #include <spi.c> #include <wl_module.h> #include <wl_module.c> #include <nRF24L01.h> volatile
Pull up chip select } } [/c] Empfänger: [c] #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <stdlib.h> #include <spi.h> #include <spi.c> #include <wl_module.h> #include <wl_module.c> #include <nRF24L01.h> volatile
-
Thread
LED Matrix (AtMega2560)
Befehle müsst ihr nicht beachten, die hauen hin ;-) ) Hauptprogramm (main) [c] #include <avr/io.h> //für PORT,... #include <util/delay.h> //für delay (sollte ersetzt werden) #include <avr/interrupt.h> //für interruptfunktionen #include "usart.h" //für send & recive //für eine
interruptT0var; #endif /* LED_MATRIX_3X5_MUX_H_ */ [/c] ***Sourcefile*** [c] #include <avr/io.h> //Für PORT,... #include <avr/interrupt.h> //Für Interrupfunkltionen #include "LED_Matrix_3x5_MUX.h" //für eigene MUX Funktionen #include "usart.h" //für ein ausgabe über putty
-
Thread
Funkverbindung zwischen 2 AVR´s in Assembler
Empfänger gut und was er weniger gut empfangen kann. Das könnte helfen: http://www.pocketmagic.net/using-fs1000axy-fst-rf-radio-module-with-avrs/
beschäftigen. Das gilt aber auch für andere Protokolle. Allerdings schränkt die Versteifung auf AVR-Assembler das Finden von Beispielen sehr stark ein.
-
Thread
128 Bit Risc
Sowas gab es hier schon mehrfach: https://www.mikrocontroller.net/topic/227741 https://www.mikrocontroller.net/topic/307782
http://www.mikrocontroller.net/topic/413678#4833756 collatz3.cpp collatz4.cpp http://www.mikrocontroller.net/topic/413678#4840977 c128.cpp