-
Thread
LCD-Problem nach Änderung der Pinbelegung
|= 1<<2; if( LCD_D7_PIN ) flags |= 1<<3; [/c] Peter
PINB definiert. @Peter Dannegger hast du den high Nibble absichtlich angegeben? Denn in der if abfrage unter dem Code wird ja nach if (flags & 6) gefragt, also die ersten 3 bits... grüße Khan
-
Thread
100/200 MHz Logikanalysator (Spartan 3, SRAM)
Hi, >Theoretisch sollten da 4 Kanäle a 8 bit bei 100 MHz Samplerate drin >sein. 8bit sind ein bischen wenig, weil man die letzten zwei Bit verwerfen sollte. Ihr solltet aus diesen Grund einen 10 Bit AD Wandler nehmen und nur 8Bit als ADC
ungefähr die Einarbeitungszeit ist um den LA aufbauen zu können , habe bisher nur Erfahrung mit 8-Bit uC guten Rutsch Mario
-
Thread
Mal wieder 'ne Software PWM Frage
schon viele vor mir eine kleine Frage bezüglich dem Software PWM Problem. Als Anhang hab ich meinen C-Testcode, der soweit mit einem PWM-Kanal funktioniert (LED dimmt ohne Flackern auf). Wenn ich nun aber eine zweite Abfrage in die while-Schleife einfüge klappt gar nichts mehr. Sollte ich solche Routinen
PWM-Beschreibung Hier in dieser Software ist das nicht der Fall. Da folgendes geschieht, wenn zähler=100: [c] if (zaehler == 100) { PORTB = (7 << PB1); zaehler = 0; } [/c] Das wird ausgeführt, die LEDs werden AUSgeschaltet (LOW-aktiv) Der Zähler wird auf Null gesetzt. [c] if (zaehler ==
-
Thread
LCD zeigt nur die Hälfte an
Schalte den Wrap ein und die Library kümmert sich um den Umbruch 'in die nächste Zeile' (wenn die Abfrage vom LCD funktioniert, aber davon gehe ich mal aus) [C] #define LCD_WRAP_LINES 1 /**< 0: no wrap, 1: wrap at end of visibile line */ [/C] Hier ... [C] /************************
LCD_DDRAM)+LCD_START_LINE1,0); } #endif lcd_waitbusy(); #endif lcd_write(c, 1); } }/* lcd_putc */ [/C] ... sind die entsprechenden Abfragen enthalten. Sie sind aber nur dann aktiv, wenn LCD_WRAP_LINES auf 1 steht
-
Thread
PSoC: Programm läuft auf POD aber nicht auf Real-Chip
Die Clock habe ich an einen Interrupteingang gehängt, und sobald die Clock losläuft, werden die Bits von der Datenleitung eingelesen. Und da haut irgendwas mit dem Timing nicht hin. Es werden so wie es aussieht einzelne Bits verschluckt auf dem PSoC, weswegen mein Programm die Daten nicht auswertet
auslösen soll(tut er ja auch auf dem POD) Sorry, stimmt, hab ich übersehen. Wenn ich mir dein main.c so ansehe glaub ich nicht das es notwendig ist das du die Tasten interruptgesteuert machst. Würde das mitn Buffer verschmeißen, die Tasten im 10msec Takt im while(1) abfragen und mir den GPIO Interrupt
-
Thread
Lagerverwaltung Part-DB V0.5.x
D:\\Daten\\htdocs\\Part-DB\\inc\\lib.start_session.php on line 291, referer: http://localhost/ [/c] PHP 7.1.9 MariaDB 10.2.8 Zeile 291: [c] $database = new Database(); [/c]
": { "psr-4": {"PartDB\\": "lib/"} } [/c]
-
Thread
Rust - ist das hier um zu bleiben?
sowie Kotlin gewünscht. Letztere werden für Android-Apps verwendet. Mithilfe von Anbindungen an C und C++ ist außerdem die Nutzung in der Unreal Engine möglich. [/pre] Rust 1.49.0 hebt Linux-64-Bit-ARM auf höchste Support-Stufe https://www.heise.de/news/Rust-1-49-0-hebt-Linux-64-Bit-ARM-auf-hoechste-Support-Stufe
verantwortungsvoll den neuen C++ Code im Kernel reviewen? Die "alte" Kernel-Hacker-Gilde eher nicht. Einzelne C++ Features auszuschließen würde die Sache nicht besser machen, würde wohl in einem größeren Krieg enden. Aber ein paar
-
Thread
[STM32] CMD0 liefert immer 0xFF zurück
[c] #define GPIO_BSRR_BS12 ((uint32_t)0x00001000) /*!< Port x Set bit 12 */ #define GPIO_BSRR_BR12 ((uint32_t)0x10000000) /*!< Port x Reset bit 12 */ [/c]
des gestauchten Zeitstrahls nicht die einzelnen 8 bits da drin? Oh, Oh, jetzt habe ich aber einen Termin ....
-
Thread
Wert merken, wenn Controller von Spannung abgetrennt wird
Dafür ist das da. Alternativ: Batteriegepuffertes RAM, oder FERAM ... Da Du aber nur ein einzelnes Bit speichern willst, kannst Du auch ein /bistabiles Relais/ verwenden. Das ist dann wenigstens auch noch mechanisch.
merken kann? Sodass > ich das Bauteil an meienm Mikrocontroller anschließen kann und dann den > Pin abfrage (High oder Low). Warum verwendest du einen µC, wenn du ihn offensichtlich nicht verwenden willst - um es mal überspitzt zu formulieren?
-
Thread
Scheduler für AVR
LCD_DB7); > lcd_enable_puls(); > } Was bitte ist das denn? Wer kommt hier auf die Idee jedes Bit einzeln zu setzen? [code]LCD_PORT &= 0x0F; // Pins low LCD_PORT |= data & 0xF0; //high Nibble setzen[/code]
Karl K. schrieb im Beitrag #5631076: > Was bitte ist das denn? Wer kommt hier auf die Idee jedes Bit einzeln zu > setzen? Wahrscheinlich der Gleiche, der die Zuordung der Bits zu den Portbits maximal variabel halten wollte. Wo liegt das Problem? Die 3us CPU-Laufzeit? > LCD_PORT &= 0x0F; //
-
Thread
TWI ATxmega register
Abfrage. Schickst du ein Kommando 'Trigger RH Measurement' kriegst du bei der nachfolgenden Abfrage die relative Luftfeuchte. Dtanblatt http://www.sensirion.com/fileadmin/user_upload/customers/sensirion
Variante sein dürfte. Ich weiss allerdings nicht aus dem Kopf, ob der XMega ein Clock-Stretching am I2C unterstützt. Wenn nicht, ist der Non-Hold Mode definitiv einfacher: Du schiebst das Kommando rüber und startest dann Read Abfragen. Die gehen solange schief, solange der SHC misst. Ist er fertig, dann
-
Thread
Rigol MSO5104
Siglent scheint wirklich deutlich rauschärmer zu sein. Der Australier meint, das Rigol hat effektive 5.5Bit und das Siglent 6.5 Bit. Es gibt beim Siglent den 10Bit Mode. Dann sinkt zwar die Bandbreite unter 100MHz aber das Signal ist wirklich gut: https://youtu.be/HxzQS-Bn2R0
ein Kanal über dem Kondensator ). Die Grenzfrequenz müsste also [code] >> R=50 R = 50 >> C=10e-9 C = 1.0000e-08 >> fg=1/(2*pi*R*C) fg = 3.1831e+05 [/code] sein
-
Thread
Taster am AD Wandler plus WakeUp - wie?
gegen GND; die Schaltung selbst kannst Du sicherlich im Kopf nachvollziehen. Bezogen auf einen 10Bit-ADC ergeben sich rein rechnerisch folgende Werte für die einzelnen Taster: 1-8: 93, 170, 236, 292, 341, 383, 421, 455 9-16: 485, 512, 536, 558, 578, 597, 614, 640 Die kleinste Änderung ergibt
Hi c-hater, wow, danke für die ausführliche Info und deine Mühe! Dann wird meine Schaltung ja wesentlich einfacher. Hoffe dass ich den C-Code hinbekomme. Dann mache ich mich mal an die Arbeit, leider
-
Thread
MMC/SD Karte: mmc_lib Version 2.0
fplay(handle);//abspielen while(1){ } } [/c]
...komische Sache. Ich dachte mir immer: char - 8 bit short - 16 bit long - 32 bit long long - 64 bit Naja, scheint nach der inttypes.h alles ein wenig anders zu sein, daran kann ich mich schlicht nicht gewöhnen :-)
-
Thread
Lagerverwaltung Part-DB V0.3+
Hi, Getestet hatte ich das mit der neusten Chrome Version 55 und dem IE11 unter Win10 64 Bit. Die Version die ich heruntergeladen hatte müsste das commit 12c136f gewesen sein. Im Anhang auch mal eine Grafik dazu was ich meine. Die Oberen Menüpunkte der Kategorieren sind wohl als "selectable
das so in der Art eig. noch nie gemacht mit einem Template-Engine. Normalerweise schreibe ich ja uC-Programme in C ;). Mfg, Tropaion
-
Thread
Kommunikationsprotokoll als Baum definieren?
Unterbefehl sein soll, ist mir ein bißchen unklar. Ich habe Befehle von 0x10 - 0x70, bei Antwort wird bit7 auf 0 gesetzt, demzufolge gehen mögliche Antworten von 0x90 - 0xF0. Befehle 0x00-0x0F und 0xF1-0xFF sind reserviert. Mit bits4-6 werden 8 Gruppen bezeichnet, jede mit 16 Befehlen und es wird
Protokoll Zustandslos zu entwerfen. Also, dass die Packete unabhaengig voneinander sind, und auch einzeln wiederholt werden koennen. Das bedeutet dann zB, dass bei einem Datentransfer eine Blocknummer dabei ist, jeder Block einzeln abgefragt werden kann.
-
Thread
STM32L452RET6P: ADC Scanmode mit DMA nicht OK
ADC-Ergebnisse sollen in ein Array geschrieben werden (DMA). Geht aber irgendwie nicht richtig... Mit der Abfrage eines einzelnen ADC-Kanals ohne DMA gehen die ADC-Kanäle (zumindest bei den ersten 4 Kanälen habe ich es getestet) und es kommen auch plausible Werte raus, wenn ich eine Spannung 0..3,3V einspeise
ich wie Folgt vor: * Die ADC1->SQR Register konfigurieren: Gibt an in welcher Reihenfolge die einzelnen ADC-Chanels eingelesen werden sollen. * Die ADC1->SMPR Register konfigurieren: Wenn nötig wird hier eingestellt wie schnell die einzelne ADC-Wandlung dauern soll * ADC1->CR1 Bit setzen: SCAN
-
Thread
Ist mein Mega 128 Kaputt
latitude;lontitude§kennung;testort;plz;latitude;lontitude# $=Startzeichen §=endezeichen für einzelnen Ort #=terminierung Datensatz im Flash hier lese ich aus ortschaft enthält $kennung;testort;plz;latitude;lontitude§ //Inhalt meiner ort.c typedef struct{ char kennung[10]; char testort
read_word2(); unsigned short int word3=read_word3(); unsigned short int word4=read_word4(); coeff.c1 = word1>>1; coeff.c2 = word3 & 0x3f; coeff.c2 <<= 6; coeff.c2 |= (word4 & 0x3f); coeff.c3 = word4>>6; coeff.c4 = word3>>6; coeff.c5 = word1<<10; coeff.c5 &= 0x400; coeff.c5 += word2>
-
Thread
STM32F030x08 > UART > IRQ und Puffer Betrieb
neues > senden will. Du meinst also erstmal die Daten in den Puffer schreiben, dann einmal.. [c] xx->TDR = data [/c] und in der ISR dann quasie Byte für Byte aus dem Puffer holen?.
nächsten Zeichen. Nochwas: Es sollte noch einige weitere Funktionen geben, und zwar für: - Abfragen, ob ein empfangenes Zeichen vorliegt - Abfragen, ob der Sendepuffer noch ein weitees Zeichen vertragen kann W.S.
-
Thread
Eine Zahl in Einsen convertieren
auffüllen" ... Oh, FPGA - dann hast du natürlich recht, hatte ich nicht gelesen, dachte, es geht um C, C++, Java, Basic, Python ... Hab' den Beitrag über "Forum" allgemein gefunden, nicht die Sparte dazu wahrgenommen.
Aufgabe noch künstlich und völlig nicht nachvollziehbar erscheint, ist eine Schleife um die einz. Bits nötig.
-
Thread
ARM Board minimal
mit 20Mhz, oder?" Aber ja doch. Nicht, wenn er bloss mit I/O-Leitungen spielt. Bei Software-SPI (bit banging) wird ein AVR schneller sein als zumindest die meisten LPCs, weil die einen berüchtigt langsamen Peripheriebus haben. Aber lass den AVR mal die in C extrem häufigen (mindestens) 16bit breiten
und der Operandengröße wurde mir dann aber einiges klar. Jede der vier Instruktionen ist exakt 32 Bit lang - das sind die Operanden aber auch. Also werden die 32-Bit-Operanden "gepackt", um mit in den 32-Bit-Opcode untergebracht zu werden. Der Wert 0xE002800C (das ist das Register IOCLR) lässt
-
Thread
Menü programmieren
das macht, was Du möchtest (ggf. Flüchtigkeitsfehler). Hätte Dir so ein Code etwas gebracht? [c] #define T_MENU P3IN&BIT7 #define T_UP P3IN&BIT6 #define T_DOWN P3IN&BIT5 void tastensteuerung(void) { int menu=0; if(T_MENU) {menu++; pause1();} switch(menu) { default
Bitmanipulation#Bitmanipulation_beim_MSP430 D.h. folgende Zeilen müssen etwa so angepaßt werden. [c] #define KEY_PIN P2IN #define KEY0 BIT7 #define KEY1 BIT6 #define KEY2 BIT5 #define ALL_KEYS (KEY0 | KEY1 | KEY2) #define REPEAT_MASK (KEY1 |
-
Thread
Verbindung mit Component von Grafikentwurf zum VHDL
LPM_Counter und ein LPM_Compare sein, die so zurecht gebogen werden, dass die Busbreite stimmt (17 Bit für 100000) und beim Comparator das 17-Bit Eingangssignal mit einer Konstanten verglichen wird, siehe der 3. Screenshot (die ersten beiden sind aus Versehen angehängt, das konnte ich nicht rückgängig
schrieb im Beitrag #4021565: > Die If-Schleife ... gibt es nicht. Es gibt bestenfalls eine if-Abfrage.
-
Thread
serielle datenübertragung pc <> AVR
Volker Schulz schrieb: > Das ist ja schonmal gut. Kann man in C auch einen SWAP veranlassen? Das musst du ausprobieren. AUf Hochsprachenebene gibt es keine einzelne Operation, die einem SWAP entsprechen würde. Das geht nur mit einer Kombination. Von daher halte
Habe mal etwas zusammen getippt: [c] void itohex(uint8_t n, char *s) { //obere 4 Bit if ((n>>4)>9) s[0]=(n>>4)+55; else s[0]=(n>>4)+48; //untere 4 Bit if ((n&0x0F)>9) s[1]=(n&0x0F)+55; else
-
Thread
low-cost WiFi Chip ESP8266 Projekte mit dem Internet der Dinge (IoT)
habe ich auch schon nachgedacht. Das Problem besteht allerdings weniger darin, das Timing der einzelnen Bits richtig hinzubekommen (das geht schon irgendwie), sondern dass die Übertragung zu beliebigen Zeiten durch Interrupts unterbrochen werden kann. Unterstützt der SOC DMA? Habe ich noch nichts
habe ich auch schon nachgedacht. Das Problem besteht allerdings > weniger darin, das Timing der einzelnen Bits richtig hinzubekommen (das > geht schon irgendwie), sondern dass die Übertragung zu beliebigen Zeiten > durch Interrupts unterbrochen werden kann. Meine Annahme war, dass das in der von
-
Thread
Einführung des Hexadezimalsystems
Joseph, der Seifenopernstar von uC.net! Jäger des verlorenen Zahlensystems. Joseph und die letzte 8-Bit CPU.
noch addieren, multiplizieren oder dividieren können. Man muss nur wissen, an welchen Positionen einzelne Bits gesetzt oder gelöscht sind und wie man diese Bits logisch verknüpft.
-
Thread
PWM über serielle Schnittstelle
bricht aktuelle Eingabe ab: tmp_Zahl = -1; } } } ... [/c]
eigentlich ist das ziemlich simpel, wenn man ein bischen Übung in der Programmierung hat. Speziell einen einzelnen 8-Bit Wert per UART zu übertragen ist nicht wirklich Raketentechnik. Bei mehr Bytes bzw. wenn es sich jetzt um einen 16-Bit Wert handelt, wird das schon ein wenig schwieriger. Hast du dir denn
-
Thread
Datenverlust in EEPROM
das sollte hier nicht relevant sein). Auf dem Board verwende ich ein EEPROM von Microchip (via I2C) und als uC habe ich einen 8051er von SiLabs. Manchmal habe ich das Problem, dass sich Einstellungen, die im EEPROM abgelegt sind verändern. Grundsätzlich lese ich die Einstellungen immer dann,
[c] if ((Milliseconds - t_LastWritten) >= 15) [/c] Da sind schonmal 2 Fehler: 1. Da t_LastWritten nirgends geschrieben wird, läuft Deine Wartezeit nur einmal nach Programmstart ab. 2. Ich
-
Thread
ATMega328-basierter Sprach-Synthesizer für den CPC 464 - Schnelles Byte-weises Lesen mit dem 328?
wie [c] loop_until_bit_is_set(PIND, 2); //pull ready READY immediately DDRB |= 1; clearBit(PORTB, 0); pinb = PINB; pinc = PINC; .... [/c] dazu führen, dass pinb, pinc
: [c] do { pinb = PINB; pinc = PINC; } while (bit_is_clear(PIND, 2)); do { pinb = PINB;
-
Thread
Array mit 512 Bytes über Rs232 vom PC zum PIC
[c] #use rs232(baud=115200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9) [/c] bits=9 ?? wird da das Stoppbit mitgezählt ? oh was mir gerade noch auffällt ... [c] ... else {
Sascha Weber schrieb im Beitrag #1946859: > ?? int ist doch 16Bit Der Wertebereich ist glaub ich abhängig vom C-System bzw Compiler, oder?! In der Hilfe von meinem Compiler steht, dass int8 gleichwertig wie int ist, also nur 8 Bit > [c] > ADDR=(recB & 3) << 7
-
Thread
Drehgeber an Arduino, external interrupt ISR wird doppelt ausgeführt
c-hater schrieb im Beitrag #6812128: > Du musstest nun schon zugeben, dass es (also interruptbasierte Abfrage > von Quadraturencodern) prinzipiell funktioniert Falsch. c-hater schrieb im Beitrag
c-hater schrieb im Beitrag #6812128: > Du musstest nun schon zugeben, dass es (also interruptbasierte Abfrage > von Quadraturencodern) prinzipiell funktioniert Falsch. c-hater schrieb im Beitrag
-
Thread
Codierte Funkuebertragung (war: "Korrelation ist besser...")
identisch, also > deine Chirps (heisen diese Code nicht eigentlich Chips?), Chip heißen die einzelnen "Bits" des Codes, Chirp ist was anderes. > nur das sie 90 > Grad Phasenverschoben sind in ihrer Trägerfrequenz. Beide Korrelationen > stellt ja Lockin-Amplifier mit anschließender Integration
der Lock-In Amplifier und die Barker/GoldCodes sondern eben das optimierte und quasi parallele Abfragen der zueinander versetzten Codes, die Autokorrelation. Wenn ich dich richtig verstanden habe sendest du deinen 1024 Bit Code und musst diesen im Empfänger am besten in einem Rutsch so autokorrelieren
-
Thread
Funktion funktioniert nur einmal
stimmt immer nur der erste berechnete String - alles was danach kommt stimmt nicht mehr(ein paar Bits sind falsch). Wenn ich den µC resete, dann ist das Programm noch im Flash und ich bekomm wieder beim ersten Mal den richtigen Wert - alles was danach kommt ist wieder falsch. Ich würde ja gerne den
sizeof(string)) dauert etwas länger und schreibt über die komplette länge ein 0 rein. Ein String in C ist nicht wie in Pascal definiert. In C endet der String wenn eine 0 kommt, in Pascal wird die länge extra verwaltet was den vorteil hat das man auch eine 0 im String speichern kann und die längen abfrage
-
Thread
Akku-Verbrauchsanzeige für Bootsmotoren
schalte auf low/high - springe dorthin (rjmp ...) - verschiebe Bit x nach links/rechts (lsl ...) Das ist durch die Assembler-Befehle für mich nachvollziehbar. Aber in C ist das einfach nur kryptisch für mich. Hast du eine gute Dokumentation, wo das nachvollziehbar
dorthin (rjmp ...): nimmt man in C nicht, da hat man Schleifen, for, while verschiebe Bit x nach links/rechts (lsl ...): wert = wert<<x; oder wert = wert>>x;
-
Thread
MC für IR-Fernsteuerung programmieren
wirklich weiter gebracht hat es mich auch nicht. Ich kenn mich leider absolut nicht mit Basic oder C aus, daher wird es schwer, irgend welche Bits auszulesen und weiterzuverarbeiten. Ich suche bereits seit 3 Tagen nach ner Art Funktion-Referenz oder Manual zu basic, leider vergebens. Denn selbst
hast Du ein gültiges Startbit erkannt. Danach eben die Datenbits messen und auswerten. Du mußt die einzelnen Bits selbst zu einem Byte zustammenbauen. Die notwendigen Kommandos heißen AND, OR und Shift. Markus
-
Thread
Mikrocontroller auslesen
Schreiber schrieb im Beitrag #4039001: > stimmt so nicht, man kann das Bit löschen ohne den Flash zu löschen: Wie geht das?
hiermit nachhole: Das das so einfach geht, bezweifle ich. Wie malt man denn schwarze Farbe auf einzelne Bits? Mit einem Schweineborsten-Pinsel? Schreiber schrieb im Beitrag #4046045: > Das ganze gibts als Komplettangebot von einigen Dienstleistern für viele > µCs zu erträglichen Konditionen (ab
-
Thread
PIC18f2550 i2c. Brauche dringend Hilfe (HDMM01)
stellen und brauche deshalb dringend Hilfe. Ich versuche die Daten des Magnetfeldsensors über i2c mit dem PIC18f2550 einzulesen aber kenne mich überhaupt nicht mit i2c aus. Im Datenblatt steht dass die Adresse des Bauteils 60H ist. Bit 0 für Messung, Bit 1 für SET und Bit 2 für Reset. Hier der
Funktionen mit drin. Kann ich nicht sagen. Ich benutze meine eigenen I2C Funktionen, daher kann ich da nicht mehr auskunft geben. Debugge es doch einfach mal im Einzelschritt. Wenns zeitliche Probleme sind bekommst du das dann raus. Oder einfach im Code das WCOL bit abfragen
-
Thread
Griffheizung mit Arduino Nano
[c] float temperature; [/c]
>= zyx)) [/c] Wobei xyz dein oberer Grenzwert und zyx der untere ist bei dem der Teil der If-Abfrage Abgearbeitet werden soll. z.B. zwischen 10 und 5 °C. Tu dir selber einen Gefallen und google die Befehle
-
Thread
Schalterabfrage in Bascom
0x01){ mach_kafeemaschine_an(); } Beim avr-gcc gibt es da eine schöne funktion die nennt sich bit_is_set. Ich mache das dann immer so if (bit_is_set(PINA,7){ druck_die_lösungen_für_meinen_mathe2_schein(); :-((( } Vieleicht mal von Basic weg?
&B00011000 'beides = Output=1,input=0 Portb = &B11100111 'PullUp Widerstände auf einzelne InputPins Portd = 255 'PullUp auf kompletten Port Abfrage einfach mit if Pinb.2 = 0 then ...... Sinnvoll ist hier auch die alias-Funktion zu verwenden, z. B.: Pin_jumper12
-
Thread
ADC funktioniert nicht
doMeasurement ist nicht deklariert :-) Außerdem: gibt es auf dem AVR wirklich keine Möglichkeit, einzelne Bits als Flags zu nutzen? Und ich finde [c]for(;;)[/c] irgendwie verwirrender als [c]while(1)[/c] auch wenn das 1 Tastendruck mehr ist. Dafür sind [c]return 0;[/c] _nach_ einer ENDLOSSCHLEIFE
int ist 16 Bit gross! Damit halst du dem armen 8-Bitter unnötige Mehrarbeit auf. ein [c] uint8_t doMeasurement; [/c] tuts völlig. >> Außerdem: gibt es auf dem AVR wirklich keine Möglichkeit, einzelne Bits
-
Thread
"Programm bleibt in der TIMER ISR hängen"
keine Auswirkung Programm bleibt weiterhin in der TIMER_ISR Programm: /* * Reaktion.c * * Created: 15.10.2013 09:01:04 * Author: E.C */ #include <avr/io.h> #include <avr/interrupt.h> #include <inttypes.h> #include "lcd.h" ISR(INT0_vect); ISR(TIMER0_OVF_vect); int
sind gesperrt während ein Interrupt ausgeführt wird EDIT: Das sei in deiner if(gedrueckt == 5) Abfrage auch... aus o.g. Grund Ist dein Taster Hardwareseitig entprellt?
-
Thread
Microcontroller-Sicherheit in MIL-Systemen durch FPGAs erhöhen
solcher registriert wird. Man kann natürlich alles mit CRC-Checks zukleistern, aber da irgendwo eine Abfrage in SW gemacht wird, ist sie teils für die Katz, wenn ein gekipptes Bit ein "true" suggeriert. Auch bei NIOS bin ich von der Komplexität her skeptisch. Bei einem 8051-Core sieht's schon anders aus
liegen, dann wird die Wahrscheinlichkeit sehr schnell sehr klein, dass genau gleichzeitig mehrere Bits (der selben Funktion) kippen, da ein einzelner Event nur lokal begrenzt aktiv ist. Ist natürlich ein aktiv diskutiertes Thema bei den kleiner werdenden Strukturgrössen. (Es gibt eigene Konferenzen
-
Thread
Wittig(welec) DSO W20xxA Open Source Firmware (Teil5)
erstmal deaktiviert. Die Nachrüstung soll aber noch erfolgen. Weiterhin will ich auch versuchen den C-Code Treiber so weit zu optimieren dass er an die Performance des Assemblertreibers heran kommt. Im Zweifelsfalle ist das C-Coding wartungsfreundlicher und besser lesbar. Gruß Hayo EDIT: in einzelnen
luigi schrieb im Beitrag #4118778: > Off topic: > Playing with R19 (reducing) and C11 (increasing) a bit can we improve HF > BW linearity ? No, that is the wrong step. The OP1177 and the back coupling with C11/R19 is only responsible for the DC part of the signal. To change HF linearity
-
Thread
TV Bild mit AVR
ein 16bit SPI Interface mit 8 Word FIFO hat, was erlaubt 128Pixel auf einmal zu schreiben (nennt sich SSP Interface). Pro Zeile muss der uC also nur 4x Werte nachliefern für ein komplettes 512x288 Bild (64x32
@Jan >Gratuliere, sie doch Klasse aus ! danke >Womit ist das realisiert ? C ? ASM ? in Assembler, ich glaube in C wäre es nicht so ohne weiteres möglich, das es teilweise auf jeden einzelnen 16-MHz-Takt ankommt. Bernhard
-
Thread
LCD Ansteuerung (EIGENE INIT)
der erfahrenste programmmierer bin. Soll heißen 'learning by doing'. Ich benutze MPLAB mit dem C18 Compiler. folgendermaßen sieht es nun bei mir aus. [c]void LCD_INIT(void){ LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; DelayMS(15); PORTB = 0x30; //8-Bit
Byte, der Rest der ASM-Befehle im Datenblatt deines Controllers). Delay-Anweisung hast du ohnehin in C auch zur Verfügung und auf die Abfrage des BUSY-Flags kann man notfalls verzichten und ein Delay mit 1ms (oder weniger) einfügen.
-
Artikel
Entprellung
gedrückt und ist immer noch gedrückt war gedrückt und ist nicht mehr gedrückt (fallende Flanke) Diese einzelnen Zustände lassen sich jetzt bequem abfragen/durchlaufen. Die Entprellung geschieht dabei durch die ganze Laufzeit des Programms. Die Taster werden hierbei als active-low angeschlossen, um die internen
als dem zuletzt bekannten entprellten Tastenzustand. An dieser Stelle ist i daher ein Vektor von 8 Bits, von denen jedes einzelne der Bits darüber Auskunft gibt, ob die entsprechende Taste mehrmals hintereinander im selben Zustand angetroffen wurde, der nicht mit dem zuletzt bekannten Tastenzustand übereinstimmt
-
Thread
genaue Zeitmessung (hohe Auflösung + Genauigkeit) STM32
Eingang starten und stoppen lässt), sich mit einem hochgenauen Oszillator ansteuern lässt und per SPI,I2C oder UART abfragen lässt? Ich habe schon einen TDC7200 ins Auge gefasst, aber dieser kann maximal 14mS messen (mit 2Mhz Quarz) und langsamer kann ich den nicht sinnvoll machen. Wie gesagt ich habe
erspart man sich für den Anfang das Layout und auch die derzeit völlig überzogenen Kosten für den einzelnen Controller. TIM2 und TIM5 sind 32 Bit breit und haben jeweils vier Capture-Eingänge. Das sollte für viele Spielereien reichen. https://www.digikey.de/product-detail/de/stmicroelectronics/NUCLEO-H743ZI2
-
Thread
ATMEGA8 - 2 analoge Signale einlesen (2-Ch AD-Wandler)
habe ich beim Lesen kapituliert. Ja, sorry für die schlechte Beschreibung. Ja die letzten vier Bits beziehen sich auf den Anschluss zum Poti. Also MUX0-MUX3. Und da alle vier Bits Null sind ist es ja der Anschluß ADC0 des µC. War für mich ne Bezeichnung wo ich das Kabel anzuschließen habe.
Deine SChreibweise wurde ja schon zur Genüge angesprochen. Zu noch einem Fehler (neben der Abfrage ob er fertig ist) [C] ADMUX |= 0b01100001; // Einlesen des Kanals 1 usw. [/C] und wie erwartest du, dass das ganz rechte 1 Bit (für Kanal 1) jemals wieder gelöscht wird? [C] ADMUX