-
Thread
PSMC 3 Phasen Ansteuerung PIC 16F1788
Zusammenhang bringen mit der PSMC Geschichte... Hat wirklich keiner das MOdul schon zum laufen gebracht? Geht bei jemandem das Beispielprogramm? Gruß PS: hier das Datenblatt http://ww1.microchip.com/downloads/en/DeviceDoc/41675A.pdf auf Seite 289 ist die Registerübersicht.
"push pull setup" BANKSEL TRISC BCF TRISC, 0 ; enable pin drivers BCF TRISC, 1 Bei dir ist PORTC,0 auf INPUT geschaltet !?!?
-
Thread
Array in GCC
! Funktioniert super ! kannst du mir nochsagen wie ich die grösse des arrays ermittle? sizeof() geht jetzt wohl icht mehr. MfG Axos
Offset (i) ) // und PortB Zuweisen PORTB = PRG_RDB(Tabelle_1 + i); // Tabelle_2 nach PortC PORTC = PRG_RDB(Tabelle_2 + i); } for(i=0; i<5; i++) { // Auf PortD werden 5 Zeichen vom Text_1 ausgegeben PORTD = PRG_RDB(Text_1 + i); } } ------------------------
-
Thread
XMega Arbeitsweise richtig verstehen
unter BIT Adressierung verstehe ich sowas wie: PORTC.5=1; wenn ich mache PORTC=0x20; ist das keine BIT Adressierung mehr. Wenn ich nun ein anderen PORT PIN setzen will und den Zusatnd der anderen nicht kenne und unverändert lassen möchte, muss ich
Pull-Up usw. geht mit dem Pin-Control-Register. PORTA.PIN6CTRL = PORT_OPC_PULLUP_gc; etc.
-
Thread
SPI "transmission complete" SPIF Flag
Wohl doch nicht, das geht beim allerersten Byte schief. Nun, vor dem SPDR=LSB muss irgendwie SPSR gelesen werden (ohne dass der C-Compiler es wegoptimiert).
SPSR = (1<<SPIF) o.a. Natürlich geht das nicht, im Datenblatt ist SPIF als 'R'= /readonly/ angegeben. Es wird also nur von der Hardware gesetzt/rückgesetzt.
-
Thread
Denkanstoß beim Zählen eines externes Interrupts/ Atmega 16
diesen nicht auf einen normalen Portpin geben und so quasi auch zählen?(Pin auf Masse oder nicht). Es geht dabei maximal um eine Frequenz von 3-4Hz die der Hall IC bei maximaler Drehzahl erzeugt. Damit hätte ich wieder einen timer frei und könnte somit den Tauchtank im Bereich ist==soll mit PWM ansteuern
{ if (!(PIND & (1<<PIND2))) { ihall_cnt=0; // Pegel auf Low PORTC &= ~( 1 << PC4 ); //Led an PC4 aus } else { ihall_cnt=1; // Pegel auf high PORTC |= (1 << PC4); // Led an PC4 an } if (ihall_cnt!=ihall_cnt_tmp
-
Thread
2 Stellige 7 Segment Anzeige
geschafft dass die Anzeige von 00 bis 99 zählt. Vllt nicht sehr elegalnt und effektiv gelöst aber es geht. Ist es normal dass ich immer einen leichten Schatten habe? Also wenn ich Zb die Zahl 19 ausgebe habe ich in der Anzeige für den 1er einen leichten Schatten vom 9er drinnen?
eigentlich 16 stehen, mit dem Auge erkennt man es zwar besser aber ihr könnt euch sicher denken um was es geht.
-
Thread
Hilfe zu AD Wandler 3fache Messung
vergleich += ADCW; //Gemessenen Wert aus ADCW auslesen if (temp > vergleich) { PORTC = (1<<PC4); } else { PORTC = (0<<PC4); } Dieser Programmauschnitt funktioniert nicht :( Muss ich den ADC zwischendurch immerwieder deaktivieren? da sonst der gemessene
einem Bit Ausgangsinformation ist nur schwer anzusehen, was tief in ihrem Inneren vor bzw. schief geht. Bevor du den Vergleich machst, solltest du erstmal gucken, was du vergleichst und dir dabei sicher sein, dass die Werte auch dein Eingangssignal abbilden. Vielleicht hat der Analogteil vor dem ADC
-
Thread
ATtiny series1 Unterschied PORTB.DIRSET PORTB.OUTSET
Zur Ergänzung: PORTC.DIR |= PIN6_bm; führt zum gleichen Ergebnis wie PORTC.DIRSET = PIN6_bm; nur das der Compiler das erstere in 3 Anweisungen (Read/Mod/Write) übersetzt, während unten nur 1 Anweisung (plus evtl.
zusätzliche Register wie zum DIRSET und DIRCLR. Bei diesen muss man keine Bits löschen, was auch nicht geht bzw. keinen Effekt hat. In diesen Registern kann man nur Bits setzen mit genau dem Ziel wie der Registername sagt SET oder CLEAR. Bei diesen gibts nur "positive Logik". Das wird dann intern automatisch
-
Thread
Probleme mit Temperatursensor DS18B20
ist DS18B20 also nicht DS18S20 oder DS1820. Den Sensor habe ich VDD und GND gegen GND und DQ auf Portc.0 und mit einem 2,2k gegen Vcc. Hatte vorher ein 4,7k gegen Vcc gehabt, da war die Anzeige aber um 2,5 Grad höher. Das Problem ist, auf dem LCD werden mir Temperaturen zwischen 45 und 50 angezeigt
Habt ihr eure irgendwie makiert welche Seriennr. welcher Chip hat? Also falls mal einer Kaputt geht im Bus oder sonst irgendwie ersetzt wird und man dann weiß welche Seriennummer ersetzt werden muss? Ich hoffe es ist verständlich was ich meine. Michael
-
Thread
AVR Helligkeitsregulierung per Interrupt
^= 0b1; if(!disp_state) { PORTD = 0b1111111 | cur_playl; //Turn off all segments PORTC = (0b100<<cur_digit); //Switch to next digit (no dots) OCR1A = 1000-(clk_settings[SET_BRIGHTNESS]*150); } else { PORTC ^= dispdots; //Set dots to state wanted blink_cnt
Also das geht eigentlich auch ohne Software ganz gut. Da Du ja eine Matrix verwendest, hast Du alle Segmente auf einem Treiber und alle Spalten auf einem Anderen. Nun müsstest Du also nur die Spalten Treiber noch
-
Thread
Problemchen DCF-Wecker
pins "gleichzeitig" getoggelt werden: [c]//Summer an/aus machen if (alarm_active > 0) { PORTC ^= (1 << ALARM1); PORTC ^= (1 << ALARM2); } [/c] wobei ich das Gefühl habe, dass das weniger bringt, als die Frequenz einfach zu erhöhen... und ja, generell sollte man natürlich möglichst
Verluste, vernünftiger Preis Vlt. noch ein bißchen C und L(Entstördrossel) bevor es auf die Platine geht und feritg
-
Thread
LCD Problem
nabend ! folgendes problem: Atmega 8 mit 12,288 MHz und 2*16 character lcd (HD44780) an PORTC des atmega 8. die lcd routine sieht folgendermaßen aus: http://rafb.net/paste/results/QOSPUj60.html (aus dem tutorial, mit abgewandeltem timing) das ist das prgramm: http://rafb.net/paste/
nein es geht immernoch nicht, ich hab jetzt alle 5ms durch ca 5 untereinanderstehende rcall delay5ms ersetzt. was kann noch falsch sein ?
-
Thread
fuses bit einstellung?
DDRC = (1 << PC5); /* Output */ PINC = (1 << PC5); /* internal Pullups */ while(1){ PORTC |= (1 << PC5);/*LED OFF*/ _delay_ms(250); PORTC &= ~(1 << PC5); _delay_ms(250); } return 0; }
Marvin Mujkic schrieb im Beitrag #2228270: > leider geht das nicht wie gewünscht WAS geht nicht? Was passiert denn statt der blinkenden LED? Wie hast Du das festgestellt? Ist der Jumper gesteckt? Schau Dir mal Deinen Screenshot an (die Fuses) und
-
Thread
6 Stk LCD mit I2c Bus
Waitms 300 Config Lcd = 16 * 2 Config Scl = Portc.0 Config Sda = Portc.1 '--------------------------------------------------------------------- Do Locate 1 , 1 Lcd "MegaCAN V5.53 " Locate 2 , 1 Lcd "m.feitzi@hotmail" Loop '--
es nicht funktionieren, da die Displays zu unterschiedlichen Zeitpunkten ihr "ACK" senden. M. E. geht es nur, wenn Du allen unterschiedliche Adressen zuweist und dann nacheinander beschreibst.
-
Thread
Grafikdisplay mit SSD1289 mit XMEGA, DMA und 16bit Interface sehr schnell
PORTC // control line pins #define LCD_CD_bm PIN2_bm //RS #define LCD_WR_bm PIN3_bm //LCMPD of TCC2 #define LCD_RD_bm PIN4_bm #define LCD_CS_bm PIN5_bm #define LCD_RES_bm PIN6
Ergebnis kann sich sehen lassen. Nur was machst du mit diesem Ergebnis? Die praktische Nutzung geht gegen Null, ausser dass es auch "von hinten durch die Brust ins Auge" funktioniert.
-
Thread
Verständnisproblem bei Timer 1 ATMEGA32
0xFF,0x1FF, 0x3FF oder eben 0xFFFF) 0xFFFF fest als Topwert gibt es nur im Normalmode. Für PWM geht das nur über OCR1A oder ICR1. MfG Spess
So, hier ein Beispiel: [C] SIGNAL(SIG_OUTPUT_COMPARE1B) { PORTC++; } int main (void) { DDRC = 0xff; // Port C Ausgang PORTC = 0x00; // Port auf Null DDRD = 0xff; // PORT D ist Ausgang PORTD = 0x00;
-
Thread
7-Segment Multiplex Library
> Segmente wild verteilt: 8 * Clear Pin, Test Bit, Set Pin = 24 Befehle Wenn es nicht anders geht, muss man da durch. Atmega328: Quarz, UART, ADC und ein bisschen PWM... mfg.
Pin = 24 Befehle > > Muss ja nicht sein. > Mit einer etwas geänderter Tabelle fur Werte 0-9 geht das > auch schneller > ldi zl, low(Table<<1) > ldi zh, high(Table<<1) > clr r15 > add r16, r16 ; r16 ist die anzuzeigende Zahl > add zl, r16 > adc zh, r15 > lpm
-
Thread
AVR ATmega8TestBoard
Karl heinz, in disem Fall geht die Programmierung der 2313 NICHT über ISP sondern direkt über der JP7 oder? hat er dann ein besondere Belegung bzw. geht nicht mit ISP Programmer? wie macht man dann? Gruß Mario
Ouput 9V 200mA kannst du mir ein Typ geben? kann ich auch so arbeiten? meine mit dem Brücke drauf? geht nichts kapput? Gruß Martin
-
Thread
ADC via SPI
} int main(void) { DDRC = 0xFF; // PORT C als Ausgang LED SPI_MasterInit(); ADC_do(); PORTC = byte_1; _delay_ms(1000); PORTC = byte_2; //Ergebnisausgabe via LED }
|= (1<<PB0); //CS } int main(void) { DDRC = 0xFF; SPI_MasterInit(); ADC_do(); PORTC = byte_1; _delay_ms(1000); PORTC = byte_2; } [/C]
-
Thread
ATtiny2313 & Pin Change Interrupt
aber später von Vorteil sein. Schaut man nämlich in 1-2 Jahren wieder ins Projekt rein muss man bei PORTC |= 0b00001000 erstmal die Nullen abzählen und fragt sich vielleicht auch, was man damit bezwecken wollte wobei aus einem PORTC |= (1 << PC3) sofort ersichtlich ist, dass man hier den Pin PC3 setzen
während man sich beim Binärcode durchaus dumm und dusselig suchen kann, warum denn nun die LED nicht an geht, die an PA5 angeschlossen ist, sieht man bei der Shift-Schreibweise sofort, dass man aus versehen PA4 geschrieben hat.
-
Thread
RFM 12, Bascom und Interrupts
framesize = 100 $baud = 19200 Baud = 19200 Print "Start..." Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Porta.1 , Rs = Porta.0 Config Lcd = 16 * 2 Cursor Off Config Spi = Hard , Interrupt = Off , Data
######################## Rck Alias Porta.3 Sck Alias Portc.0 Si Alias Porta.2 Config Portb.0 = Input Config Portb.2 = Input Config Portb.3 = Input Config Portd.3 = Input Config Portd.2 = Input Config Portb
-
Thread
analog digital wandler
einstellen out UBRRL,r16 ;ADMUX Einstellungen sbi ADMUX,0b00000000 ;wähle PORTC Pin 1 als ADC Input sbi ADMUX,0b00000101 ;setze ADLAR sbi ADMUX,0b00000110 ;setze REFSO sbi ADMUX,0b00000111 ;setze REFS1 ;----------------------------------- sei ;---------
und versteh die Welt langsam nicht mehr. Kann mir jemand sagen warum das in diesen Fall so einfach geht und warum das so ist? Bin noch einigermassen Neuling und würde mich echt über eine Hilfestellung Freuen,ich komm einfach im Moment nicht weiter. grüsse andi
-
Thread
Versäumte Prüfungsverbesserung
bezüglich der Adressberechnung gibt. Und dann gibt es natürlich noch die Unterscheidung des Registers PORTC vom Register PINC. Wenn man schon in die Adressfalle tappt, dann sollte man dann doch wenigstens soweit korrekt assozieren, dass man nicht vom Register PORTC einliest, sondern von PINC. ad 10)
WEnn in der Angabe steht: dezimal 33, dann schreib auch dezimal 33. LDI R8, 33 Allerdings: LDI geht nicht mit Registern, deren Nummer kleiner als 16 ist. D.h. du musst die 16 erst mal in eines der Register mit Bezeichnungen größer als 15 laden und dann von diesem Register ins R8 bugsieren. Eigentlich
-
Thread
Nur Errors vom siemens TC35
Porta.4 Relais6 Alias Porta.5 Relais7 Alias Porta.6 Relais8 Alias Porta.7 Porta = 0 Config Portc.0 = Input ' rauf Config Portc.1 = Input ' runter Config Portc.2 = Input ' O K
Declare Sub Sms_auswerten() Declare Sub Sende_rueckmeldung() ' ----- Voreinstellungen ------- Portc.0 = 1 ' Taster Portc.1 = 1 ' Taster Portc.2 = 1 ' Taster
-
Thread
Einfache Software PWM für LEDs?
einfach wie folgt: An= 0.001 Aus = 5 For S = 1 to 5000 Toggle Porta Toggle Portb Toggle Portc Toggle Portd Waitms AusdieMaus Toggle Porta Toggle Portb Toggle Portc Toggle Portd Waitms An An = An + 0.001 Aus = Aus - 0.001 Next S Das Programm schaltet die LED anfangs 0.001 Sekunden
Die anderen haben es schon gesagt: Eine Hardware PWM wäre besser. Aber wenn es dir ums lernen geht: So daneben ist dein Gedankengang nicht. > Stattdessen leuchten sie Nach wie vor eine kurze Zeit Dunkel, > bis die 5000 Schleifen durchgelaufen sind. > Variablen hab ich als "Long" Deklariert.
-
Thread
LM339 schaltet komisch
Jetzt gerade klappt es wieder mal, jedoch nur kurz, habe das gefühl, dass der MC nicht immer an geht/bleibt/ weiß allerdings noch nicht wo dran das liegt...
= 0b11111111; //Pull-Up PortA ein DDRD = 0b11111111; //PortD als Ausgang deklariert PORTC = 0b11111111; //Pull-up PortC ein while (1) { char _dataa = PINA; //_dataa entspricht den eingängen von PINA PORTB = _dataa; //PORTB soll so beschaltet
-
Thread
SHT71 Assembler Code für Atmega8
Ich hab schon angefangen nur bin ich mir nicht sicher ob das funktionieren würde. Bzw. wies weiter geht^^. Zum Aufbau, ich hab zwischen Vdd und Data wie beschrieben einen 10kOhm Widerstand hingelötet. Ich habe nur noch nicht wirklich kapiert wie es weiter geht nach dem ich die Verbindung aufgebaut
und siehst dir an, was da rauskommt? > Ich habe nur noch nicht wirklich kapiert wie es weiter geht... Wie wäre es mit Reverse Engineering des C-Codes?
-
Thread
Frage zu XMEM Interface
das geht schon.. die meisten harddisk-mp3-player tun das.. google mal nach yampp.. der macht das glaubich so... 73
such mal nach anderen.. was ich so im hinterkopf hab geht das mit xmem... ata-devices werden ja über einen registersatz gesteuert/gelese/geschrieben... sollte also möglich sein.. 73
-
Thread
Probleme mit 8x8 LED Aufbau
.def temp = r16 .def temp1 = r17 .def temp2 = r18 .equ PortPlus = PORTC .equ PortMinus = PORTD .equ DDRPlus = DDRC .equ DDRMinus = DDRD // Variablen // // Stack-Pointer // ldi temp, LOW(RAMEND) out SPL, temp ldi temp, HIGH(RAMEND) out
.def temp = r16 .def temp1 = r17 .def temp2 = r18 .equ PortPlus = PORTC .equ PortMinus = PORTD .equ DDRPlus = DDRC .equ DDRMinus = DDRD ;// Variablen // ;// Stack-Pointer // ldi temp, LOW(RAMEND) out SPL, temp ldi temp, HIGH(RAMEND)
-
Thread
EA eDIP 240 I²C liefert nur letztes Byte
****************************************/ void initLcdImage(unsigned char i2cDestination) { PORTC |= (1 << reset); // preset LCD reset DDRC |= (1 << DDC2); // reset PORTC &= ~(1 << I2CMode); // preset I2C mode DDRC |= (1 << DDC3); // /I2C mode //PCINT7 //Hardware:
Ja, I2CMODE liegt auf GND. Das Ding geht jetzt zurück und wir besorgen eins mit Evaluationskit. Danke für eure Hilfe!
-
Thread
Hilfe gegen Bares
Grundbeschaltung des Megas und ein paar Pfostenbuchsen. Der Rest ist als Schaltplan vorhanden. Das geht schon.
Schaltung und deine Umgebung. @Spess >Aber nicht im Auto... Da wäre es ja noch einfach. Hier geht es um einen Roller ;-)
-
Thread
UART auf ATMega328p sendet nicht
Hallo zusammen, Ich versuche auf dem ATMega328p über UART zu senden. Der TX Pin geht zwar nach aktivieren und setzen der Baud Rate auf 5V aber leider wird nichts gesendet. Der TX Pin bleibt dauerhaft auf 5V (Oszilloskop). Der interne Oszillator (auf 8Mhz gefused) wird benutzt.
char data) { // wait for transmit buffer to be empty if (UCSR0A & (1 << UDRE0)) { PORTC |= (1 << PC0); } else { PORTC &=~(1 << PC0); } while(!(UCSR0A & (1 >> UDRE0))); // load data into transmit register UDR0 = data; } [/c]
-
Thread
SD-Karten-SEKTOR - Warum am Ende immer 00?
um sie danach in einen Sektor auf dem Kärtchen zu schreiben. Die SRAM-Start Adresse ist 0060 und geht dann hoch auf 025F (also 512 Speicherplätze). [avrasm] ;*INTERRUPT durch Empfang von Daten am UART* int_rxc: sbi portc, 2 ;Signallampe für empfangen an clr temp1
ist glücklich, sowie die SD-Karte auch. Man kann wunderbar stundenlang werte aufzeichnen, nur es geht halt jedes 512.Byte verloren!
-
Thread
Fifo über SPI verschicken
" der 16 Bit Befehl/Wert ist, welcher übertragen werden soll. [c]for(int i = 0; i<2; i++){ PORTC &= ~(1<<PC1); //PIN PC1 auf Low ziehen um dem Slave den Start der Übertragung zu signalisieren uint8_t byte_to_send = (command && 0x00FF); //Die unteren 8 Bit maskieren spi_send(byte_to_send
>> 8; //Die oberen 8 Bit maskieren spi_send(byte_to_send); // Übertragen der oberen 8 Bit PORTC |= (1<<PC1); //PIN PC1 auf High ziehen um dem Slave die Beendigung der Übertragung zu Signalisieren }[/c]
-
Thread
Frage zu Bitmanipulation.
: Mein Programm besteht nur aus: int main(void) { DDRC |= (1<<PC5); // (PC5 LED) PORTC &=~ (1<<PC5); while(1) { } } Obwohl ich mit &=~ den Port an PC5 "ausschalte" leuchtet meine LED?! Woran liegt das? Mein Multimeter zeigt 0V an. Die LED leuchtet aber trotzdem. Mache ich es umgekehrt und lege mit PORTC |= (1<<PC5) Spannung an geht die LED aus?! Kann das wer erklären? Danke schonmal! r.
-
Thread
bit_is_set Abfrage in Software i2c auf Atmega8
langsam aber sicher in den Wahnsinn. Das Ding wehrt sich schon seit tagen: [c] #define SCL_PORT PORTC #define SCL_DDR DDRC #define SCL_PINREG PINC #define SCL_PIN PC5 #define SDA_PORT PORTC #define SDA_DDR DDRC #define SDA_PINREG PINC #define SDA_PIN PC4 unsigned char i2c_readNak(void)
frage ich ab, welche meiner Tasten diesen IRQ abgesetzt hat und vor allem mit welcher Flanke. Das geht ja mit den PCINT nicht anders. Aber aus einem mit nicht ersichtlichen Grund geht das nicht :( Gruß Timo
-
Thread
AVR, ATmega48, PWM, FastPWM, Problem
> Wie kann ich sinnvoll 6 Ausgangspins mit PWM-Signalen beschalten? Geht > das Softwaremäßig über Interrupts wie oben beschrieben oder nur durch 6 > echte PWM-Ausgänge? Falls Du mit "PWM" Signale für Modellbauservos meinst, dann geht das auch in Software ohne Verwendung
veraltet. Es wird zwar (afaik) von der aktuellen WINAVR-Version noch unterstützt, Du solltest aber wenns geht im Hinblick auf zukünftige Projekte auf das aktuelle "ISR" umsteigen.
-
Thread
SPI Timing ATmega8 und TLC5947
while(!(SPSR & (1<<SPIF))) cData=SPDR; ; } int main(void) { void SPI_MasterInit(void); PORTC=0x00; while(1) { for(int i =0;i<36;i++) { SPI_MasterTransmit(0b00001111); //Test-Byte } PORTC=(1<<PIND2)|(1<<PIND3); //XLAT und BLANK auf HIGH PORTC
zwar angesehen, habe aber keinen großen Unterschied gefunden. Wenn ich es aber so abschreibe dann geht es....muss also am Timing liegen. Na dann danke für den Tip, das mit dem ISP hat sich somit auch erledigt. PS: nur wozu sind in dem Beispiel die Interrupts, die benötige ich ja eh nicht oder ?
-
Thread
Pinbelegung für GLCD
Command Port #define LCD_DATA_IN PINC // Data Input Register #define LCD_DATA_OUT PORTC // Data Output Register #define LCD_DATA_DIR DDRC // Data Direction Register for Data Port // Command Port Bits #define D_I 0x00 // D/I Bit Number #define R_W 0x01
#define LCD_SET_PAGE 0xB8 #define LCD_DISP_START 0xC0 [/CODE] DataPort ist ja klar geht von portc.0 bis portc.7 aber wie sind die Commands Belegt? Porta.0 == D_I Porta.1 == R_W Porta.2 == EN Porta.3 == CSEL1 Porta.4 == CSEL2 Ist das richtig? Warum ist aber z.B. CSEL1 0x03 und
-
Thread
Byte aus Einzelbits zusammenstellen / wie debuggen? (PIC18 und XC8)
kannst du nicht gleich [c] char busStatus = PORTC; [/c] schreiben?
Das wäre natürlich am schönsten, aber leider sind die Einzelbits auf PortA und PortC verteilt.
-
Thread
DS18B20: Problem mit Temperaturauslesen
bei niedrigen delay-Zeiten nicht das erwartete messen kann. DDRC=0xFF; while(1) { PORTC=0x00; _delay_us(1); PORTC=0xFF; _delay_us(1); } Dort kann nur jeweils eine reale Zeit von 265µs gemessen werden mit dem Oszi?? Obwohl ja eine Delayzeit von 1µs erwartet wird
gerade nachgeschaut, er war nicht aktiviert...nun habe ich ihn auf Os aktiviert und siehe da-> es geht!! Danke für den Tipp.
-
Thread
Hilfe PORT D kann nicht 2x in einem Programm mit LCD genutzt werden.
den Port D mehrfach...Einmal als Eingang und einmal als Ausgabe für das LCD Display... doch leider geht das nicht... wir haben im DigiEingang gesagt alles Eingang und gut... bei den Anaolgen Eingängen soll auf dem Display die Werte ebenfalls ausgegeben werden und an den PC geschickt werden...doch wenn
Port D mehrfach...Einmal als > Eingang und einmal als Ausgabe für das LCD Display... doch leider geht > das nicht... Natürlich geht das nicht ohne eine Zusatzschaltung. Sonst kämpfen die Eingänge mit den Ausgängen, bzw. das Gerät an den Ausgängen spielt verrückt. Man kann mit zusätzlichen Signalen
-
Thread
Servomotor ansteuern, kein Interrupt!!!
Interrupt_Timer0------------------------------------------- ihTimer0_ovf: ;isr sbi PORTC,0 ;Highsignal for 2ms ldi r18,0x00 loop: inc r18 brne loop loop1: inc r17 ;wert von main brne loop cbi PORTC,0 reti ;-------Abfrage_main---------------------
SERVOMOTOREN ANZUSTEUERN IST DER LETZTE SCHEIß!!! GEHT DOCH ALLES NICHT
-
Thread
Fragen zum ISP-Programmer
aus "Wichtige Regeln - erst lesen, dann posten": > Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...) Falls es um AVRs geht, hat Daniel das ganze schon richtig beschrieben. Die Zielhardware benötigt generell eine eigene Spannungsversorgung. MISO heißt "Master In Slave Out" und
Parallelport bidirektional eingestellt, kein USB-Paralleladapter > Beim Start der Programmierung geht der Reset-Pin auf 0V. > Das wären so mal die ersten Tests. Alles ok, bis auf, dass der Resetpin auf 0V geht sobald ich den Programmieradapter anstecke! im Anhang der Schaltplan von der Schaltung
-
Thread
PLL Startprobleme beim ATXmega128A1U
15:23:26 */ #include <avr/io.h> #include "clksys_driver.h" int main(void) { PORTC.DIR=PIN7_bm; // PORTC.OUT=PIN7_bm; // PORTCFG.CLKEVOUT = PORTCFG_CLKOUT_PC7_gc; _delay_ms(10000); OSC_XOSCCTRL = OSC_XOSCSEL_XTAL_16KCLK_gc | OSC_FRQRANGE
andere Picofarad dazu kommt. Hast du keinen Zugriff auf eine Heißluftstation zum Auslöten? Damit geht es wirklich fix.
-
Thread
String-Array löschen
die Array's, input und serienr, komplett löschen könnte, würde es sicher funktionieren!! aber wie geht dies?? Vielen Dank im voraus für eure Hilfe!! Hier mein Codeauschnitt: //Variablen definieren uint8_t input[1]; uint8_t serienr[4]; //Codeausschnitt zahler2=0; do { USART_Receive(
USART_Transmit(clear); USART_Transmit("\r\n 2.Ist ein AM2AMP angeschlossen\r\n"); PORTC=0x00; delay_ms(20); if (!Mot_an) { PORTC=0x40; delay_ms(20); if (Mot_an) { USART_Transmit("\r\n Ein
-
Thread
ATmega32, Taster funktionieren erst, später spinnt der AVR
#include <mega32.h> #include <delay.h> // I2C Bus functions #asm .equ __i2c_port=0x15 ;PORTC .equ __sda_bit=1 .equ __scl_bit=0 #endasm #include <i2c.h> // DS1337 Real Time Clock functions #include <ds1337.h> // Standard Input/Output functions #include <stdio.h> // Declare
Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; // Port D initialization // Func7=Out Func6=Out Func5=Out Func4=In Func3=In Func2=In Func1=In Func0=In // State7=0 State6=0 State5=0 State4=T State3=T State2=T State1=T State0
-
Thread
Probleme mit resistivem Touchscreen
DDRC &= ~(1<<XMINUS); while(1) { // X Coordiante // High / Low PORTC |= (1<<YPLUS); PORTC &= ~(1<<YMINUS); _delay_ms(200); xcor = ADC_Read(XPLUS); itoa( xcor, Buffer, 10 ); lcd_set_cursor(80,LINE3); lcd_puts(small_font, "
alles soweit aber sehr "langsam" also "schnelles" tippen wird nicht erkannt. "menu" anzeigen geht schneller als "menu" nicht mehr anzeigen. wenn ich halte dann zeigt der mir das etwa im sekunden wechsel an. also text da, text weg, text da, text weg muss/kann man die touch eingaben auch "entprellen
-
Thread
Mega8 Temperatur Drehzahlregler
glaube ich hab es verstanden.Da Int0 ja bei jeden feststellen einer Änderung am Pin ins Unterprogramm geht brauche ich ja garnicht auf ein Signal warten sondern nur den Timerwert speichern.Diesen dann als sagen wir mal wertneu und wertalt speichern und vergleichen.
--------- Config Portb.1 = Output 'Test Output Motor Config Portc.0 = Input 'ADC0 Input Config Portc.1 = Input 'ADC1 Input Config Portb.3 = Output 'Outpu
-
Thread
Timer: statt 1s Takt hab ich einen 8-10s Takt
aktivieren sei(); while(1) { PORTC = ~sekunde; }//Ende der while(1) schleife return 0; } // Der Compare Interrupt Handler ISR (TIMER0_COMPA_vect){ zehnmicrosekunden++; if(zehnmicrosekunden==100
Ziemlich viel Rechenzeit geht durch ungeschickte Wahl der Datentypen verloren. zehnmicrosekunden muss nur bis 100 zählen. Trotzdem brauchst du für einen unsigned int die 16 Bit Arithmetik zum Hochzählen und Vergleichen. Wenn du