-
Thread
KS0108 GLCD lib von master.andre funzt nicht
nach passen, aber auf dem Display passiert gar >nix! Vieleicht arbeitet der RESET Pin nicht. Geht der auf High?
holger wrote: > > Vieleicht arbeitet der RESET Pin nicht. Geht der auf High? Muss ich mal heut abend messen, bin jetzt auf Arbeit.
-
Thread
Serial.write durch Serial.print ersetzen. AVR Kompilierungsfehler function
!= 512) { PORTC = (addressCounter & 512) >> 8; // (hier A8. 255 ?) PORTA = addressCounter & 255; digitalWrite(40, LOW); digitalWrite(41, LOW); digitalWrite(39, LOW); readWord
//Serial.write(readWord, 1); --- Original //Serial.print(readWord); ---geht nicht digitalWrite(41, HIGH); } } } void loop1(){ if (Serial.available() > 0) { Serial.print(readWord); // geht auch nicht
-
Thread
Pin ist Active Low, warum?
offener PIN bedeutet meist high, mehr high geht halt nicht, Abhilfe wäre ein pulldown zu schalten oder einzulöten. Wobei ich immer einen externen pullup R vorziehen würde, Begründung: 1. Externe Pullups kann keiner per SW abschalten! 2. Pullups
Joachim B. schrieb im Beitrag #4755048: > offener PIN bedeutet meist high, mehr high geht halt nicht ... Das ist definitiv *falsch* Das mag vielleicht zu TTL-Zeiten so gewesen sein. Bei aktuellen µC ist ein offener Eingangspin erstmal ein nicht zulässiger Betriebszustand, weil der Eingang
-
Thread
asm ATmega32 codeoptimierung
cpi ...... mode1: push temp ldi temp, 0b00000001 eor pob, temp ;bitwise xor out PORTC,pob pop temp reti mode2: push temp ldi temp, 0b00000010 eor pob, temp out PORTC,pob pop temp reti ...... [/asm] jo würde mich über hilfe freun *freu* mfg
________________________________- edit: k, die abfrage muss lauten: >abfrage 1,mode1 dann gehts , thx
-
Thread
Wie bekomme ich LED am Controller völlig dunkel
verwendete Charlieplexing nicht, könnte mir aber vorstellen, das dein Problem in die gleiche Richtung geht.
hochohmig schaltet, sucht sich der Strom eben einen anderen Weg auch wenn der über eine andere LED geht. Vermutlich bekommt man das nur über ein Hystertese in den Griff.
-
Thread
Atmega16 spinnt
Buchegger Die anderen PORTs haben ja auch was, bei PORTA leuchtet eine Led einfach nicht und bei PORTc tut sich überhaupt nichts. Aber ich sag ja, der Atmega8515 funktioniert einwandfrei. Den Atmega16 habe ich von Anfang an mit den board Leds betrieben, erst vor 2 Tagen habe ich mir das eigen
> > Die anderen PORTs haben ja auch was, bei PORTA leuchtet eine Led einfach > nicht und bei PORTc tut sich überhaupt nichts. ...beim M16 sind auf Port C die JTAG-Anschlüsse per Default aktiviert. Wenn man die per ISP nicht ausschaltet geht der halbe Port "nicht richtig".
-
Thread
TWI Slave C anderer Pin (I2C)
Kann ich irgendwo einfach die Pins ändern, um meinem AtMega8535 beizubringen, nicht Pin0 und 1 von PortC zu nutzen, sondern z.B. Pin4 und 5 von PortD Oder braucht es dazu jede Menge Code, ähnlich wie die Software C Lösung von Peter, dann lass ich es lieber.. (Hätte nur aus schaltungstechnischen Gründen
empfangen wurden, 0x60 würde zB bedeuten, dass er addressiert wurde und dies bestätigt hat PORTC |= (1<<DDB3); if((TWSR & 0b11111000) == 0x60){ PORTC |= (1<<DDB4); } if((TWSR & 0b11111000) == 0x80){ PORTC |= (1<<DDB5); PORTD = TWDR; } //wenn der Interrupt
-
Thread
PWM-Programmierung_Lüfter
start=10) { if(!(++count%100)) { pos=++pos%2; } PORTC |= (1<<PC1); if(pos) _delay_us(1900); else _delay_us(1100); PORTC &= ~(1<<PC1); _delay_ms(18); start=0; } [/c] Schonmal
0 ist. Und genau darum geht es bei PWM: die Variation dieser zeitlichen Verteilung.
-
Thread
Zufallsgenerator mit 7-Segment
(10); // Taster an Pin 10 nach VCC, 10k an GND if(free>0&&pressed&&!down) { PORTC=segment7[used[choosen]/10+10]; // 7 Segment für A..D an PortC PORTD=segment7[used[choosen]%10]; // 7 Segment für 10,1..9 an PortD used[choosen]=used[free-1]; free--; } down=pressed
Tastenmodul-fur-Arduino-Raspberry-Pi/162722494505?hash=item25e3043829:g:7rIAAOSwDkVZ7VGZ Mehr mit Buttons und LEDs geht wohl nicht mit einem TM1671 ;-)
-
Thread
Port Abfragen
wenns nur ein paar Abfragen sind, gehts am einfachsten so: "ist port B = 00110011 dann ausgabe von 01010101 nach port D" in temp, PINB //einlesen von PIN B cpi temp, 0b00110011 //1.Vergleich brne chk_2 //wenn
Die PORTC-/DDRC-Konfiguration kannst Du Dir für dieses Beispiel sparen. Aber evtl. benötigst Du den Port ja noch später im Programm. Außerdem solltest Du "brne chk_3" durch "brne ausgabe" ersetzen, sofern
-
Thread
AT90S8515
rausbringen klappt gut. Denn ich habe einfach mal feste Werte rübergeschick, anstatt sie einzulesen und das geht wunderbar. Doch sobalt ich die Signale auf dem PortC einlese und mehr als 3 Einsen habe spinnt die Schaltung ab. Der Witz an der Geschicht is ja wenn ich das durch den Simulatro jage geht das auch,
natürlich auch am quellcode liegen (den ich noch nicht studiert habe) :-) aber wenns im simu definitiv geht... gruß Jonas
-
Thread
AREF ist ein Ausgang?
;!!!!!!!!!!!!!!!!!!!!!!!! brsh gr ldi temp1, 0xFF ;kleiner: LED aus out PORTC, temp1 rjmp sample_adc gr: ;größer: LED an ldi temp1, 0x00 out PORTC, temp1 rjmp sample_adc
um das aus optischen Gründen auf zwei Zeilen aufzuteilen ;) War wieder ein Volltreffer, jetzt gehts!!! Danke schön!!!!!
-
Thread
ASM und C-Code kombinieren
einen Object-Code? Nein. > Oder klatscht der direkt alles in ein IHEX? Ja. Eine Source-Datei geht rein, brennfertiges Binary kommt raus.
= 31 sreg = _SFR_IO_ADDR(SREG) porta = _SFR_IO_ADDR(PORTA) portb = _SFR_IO_ADDR(PORTB) portc = _SFR_IO_ADDR(PORTC) portd = _SFR_IO_ADDR(PORTD) ucsra = _SFR_IO_ADDR(UCSRA) ucsrb = _SFR_IO_ADDR(UCSRB) ucsrc = _SFR_IO_ADDR(UCSRC) udr = _SFR_IO_ADDR(UDR) #endif // _GAS_REGPORT_H
-
Thread
Eine Lcdanzeige mit einem Atmega8 steuern
sry falsches geht nur zu öffnen mit eagle das jetzt der schalt plan
Hi >sry falsches geht nur zu öffnen mit eagle das jetzt der schalt plan Das auch nur mit Eagle. MfG Spess
-
Thread
Automatische Stalltür, Sensorabfrage, Atmega8 GCC
ich das Kabel zum PORTC1. In der 5er Reihe zwischen Multimeter - und 1,5 Volt - hab ich einen 10k widerstand nach 4,5 Volt -. Danke schonmal!
Warum denn eine hell/dunkel-Schaltung??? Dann geht die Klappe auch tagsüber zu, wenn es gewittert oder eine Sonnenfinsternis gibt. Und wenn es nachts gewittert und blitzt, geht die Klappe auf und der Fuchs holt Deine Hühner. Mach das lieber nach
-
Thread
Avr assmebler Programm funktioniert nur sporadisch
ldi temp, 1<<toie0 | 1<<toie1 out timsk, temp ldi led1, 150 ; Grün an ldi temp,0xff ; portc als Ausgang out ddrc, temp sei pwmloop: out portc, outport rjmp pwmloop pwm: inc pwmcounter ldi outport,0xff ;Alle leds an cp pwmcounter
http://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM Und Push,Pop nicht vergessen. Wie das geht siehe http://www.mikrocontroller.net/articles/AVR-Tutorial:_Stack Gruß gtf
-
Thread
DS1820 an ATtiny25 in C, Massive Timingprobleme
zurück. Ich hatte in meiner geistigen Umnachtung nicht den DS1820 vor Augen, sondern den TSic306. Da geht es wesentlich genauer zu. Hier müsste es auch entspannter klappen.
#endif /* ifdef DDRB */ #ifdef DDRC #define ddrc (*(volatile byte8bits_t*)(&DDRC)) #define portc (*(volatile byte8bits_t*)(&PORTC)) #define pinc (*(volatile byte8bits_t*)(&PINC)) #endif /* ifdef DDRC */ #ifdef DDRD #define ddrd (*(volatile byte8bits_t*)(&DDRD)) #define portd (*(volatile
-
Thread
TWI I2C Anfängerhilfe
welche folgen es hat steht im.... Datenblatt :-) Tipp: Besorge die einen I2C Sniffer! Speicheroszi geht zwar auch, ist aber sehr mühsam.
gibt ein Kapitel "Two Wire Serial Interface" > Dreimal darfst du raten, worum es in diesem Kapitel geht Schon klar... ich habe mir auch schon alles über die Kommunikation durchgelesen, aber den Part "Send START condition" braucht man denke ich nur um die Kommunikation einzuleiten, nicht aber für die
-
Thread
LCD STN 320x240 große Schrift 16x24 / 20x10 ATmega8 Assembler TWI USART inkl. Fontgenerator VBA
Programmiert, I2C/TWI würde gehen. Gibt es eigentlich eine Library für Deine Schaltung bzw. Programm? Oder geht da auch ne Standard Lib? Ich hab das mit dem I2C mit beiden Firmware Versionen probiert. Viele Fragen....aber ich hoffe das nervt nicht so sehr. Erstmal vielen Dank is ne total coole Sache Deine Schaltung
auch treiben können, notfalls Oszi anschließen und Pegel prüfen). Aktivierte Pull-Upps: sbi PORTC,4 ; PULL-UP ein sbi PORTC,5 ; PULL-UP ein Es könnte auch sein, dass die SLAVE-Adresse nicht korrekt ist. Einfach mal einen I2C-Scanner anschließen oder per Hand die einzelnen Adressen
-
Thread
LCD_4Bit_PIC_Init
hab die flaschen PORTD befehle entfernt! richtige waren auskommentiert! danke aber trotzdem gehts net ;_( ich weiß net mehr weiter hab jetzt die unbenützten pins des lcd displays auf masse gelegt hat nichts geholfen!
PORTC #define LCD_RS_LOW LCD_RS_PORT &= ~(1<<LCD_RS) #define LCD_RS_HIGH LCD_RS_PORT |= (1<<LCD_RS)
-
Thread
Probleme Controller für die WordClock zu programmieren
Code dazu: int main(){ DDRD=0xff; PORTD=0xff; DDRB=0xff; PORTB=0xff; DDRC=0xff; PORTC=0xff; } Wie gesagt sind nur PC6, PC5, PC4 und PB2 tatsächlich auf 5V und der Rest bei 1,4V. grüße
funktionieren. Meinst du mit weglaufen des Controllers, dass er nicht gegen Versorgungsspannung geht? Kann das an einem Kaputten Baustein, oder an einem Kurzschluss auf der Platine liegen? Danke für eure Hilfe!
-
Thread
Zweidimensionales 'array' für 'switch' Anweisung
/c] Irgendwo habe ich etwas übersehen, die LEDs leuchten alle hell auf unabhängig vom Zustand an PORTC. Ich vermute dass die 'Values' nicht übergeben werden. MfG Firebird
Firebird schrieb: > Das Fehlen der {} habe ich übersehen. Genau darum gehts. Wenn du dein Programm sauber einrückst, dann kannst du das nicht übersehen. Eine optisch saubere Programmstruktur ist nicht nur reiner Selbstzweck sondern auch ein Fehlerverhütungs bzw. Fehlersuchmechanismus
-
Thread
DS1621 ueber I2C ansteuern
werden nur die Direction Registers manipuliert und nicht der Zustand der SCL/SDA pins. Dafuer ist PORTC da. Um SDA auf Low zu setzen, muesste man schreiben: PORTC &= (0 << SDA); den Pin wieder auf H zu setzen: PORTC |= (1 << SDA); Die 10ms delay ist nicht notwendig und kann mit NOPS erzielt
den Fehler gefunden - der Sensor ist defekt. Hab mir ein neues Sample schicken lassen und mit dem gehts^^ Den Code hatte ich selbst geschrieben mit WinAVR, ich verwende einen Atmega32. Hab noch einiges verändert - aber im Grundprinzip ist der Code ähnlich geblieben. Aber ihr habt natürlich recht -
-
Thread
PIC: Falsche Bank ausgewählt - Anfängerproblem
Wahrscheinlich wird dein PIC ständig reseten, was du natürlich nicht siehst, da es viel zu schnell geht.
Hi warum wird eigentlich noch "bsf STATUS, RP0" genutzt des geht doch wesentlich einfacher mit "banksel <Reg.>". Jedenfals brauch man sich keine sorgen mehr machen ob man in der richtigen Bank ist
-
Thread
Warum funktionieren Taster plötzlich nicht mehr?
mehr! Hier mal der Code... [c] #include <stdio.h> #include <avr/io.h> int main(void) { PORTC = 0xFF; // Alle LEDs aus DDRC = 0xFF; // C als Ausgang DDRA = 0x00; // A als Eingang PORTA = 0xFF; // Pullups aktiv while(1) { PORTC = ~PINA; } } [/c] Jetzt sollten
herum funktioniert... Tut sie aber nicht! Warum? Sprich wenn ich jetzt den STK500 Taster drücke, geht die LED aus. Dann sollte doch die LED auch ausgehen, wenn die den PIN auf Joystick umstecke... tut sie aber nicht. Und beim drücken tut sich auch nix. Kann mir das jemand erklären?
-
Thread
Auswahl der Hardware durch Präprozessor
init_port(void) { #if defined(__AVR_ATmega88pa__) DDRB = 0x00; PORTB = 0xFF; DDRC = 0x03; PORTC = 0x4F; DDRD = 0x00; PORTD = 0xFF; #else //Atmega644/644pa DDRA = 0x07; PORTA = 0xF8; DDRB = 0x01; PORTB = 0xFF; DDRD = 0x00; PORTD = 0xFF; PORTC = 0x03; #endif
Das wissen wir schon. Aber dein Ausschnitt reicht einfach nicht, um auszutüfteln was da vor sich geht und warum in diesem Fall io.h dann doch nicht eingebunden wurde.
-
Thread
Zahl aufteilen - Bascom
Zahl_digitalanzeige(byval Zahl As Integer) $regfile = "m8def.dat" $crystal = 8000000 Config Sda = Portc.4 Config Scl = Portc.5 Dim I As Integer Dim Segmente As Byte I2cinit Init_digitalanzeige Do For I = 0 To 9999 Zahl_digitalanzeige I Waitms 100 Next I Loop End
>Ich bin mir sicher, auch in Bascom gibts schon was fertiges Nein, dafür nicht. So geht es auch: Zahl =1204 ' zum Testen Temp = Zahl For I = 1 To 4 Stelle(i) = Temp Mod 10 'letzte Stelle in Ziffernvariable schreiben Temp
-
Thread
PWM an ATmega8 und L293D
wait rjmp schlei ; motor: sbi DDRB,3 sbi PORTC,4 sbi DDRC, 4 cbi PORTC,5 sbi DDRC, 5 ldi temppwm,(1<<COM21)|(1<<COM20)|(0<<WGM21)|(1<<WGM20)|(0<<CS22) |(0<<CS21) |(0<<CS20) out TCCR2,temppwm ;
sorry, scheinbar geht das so
-
Thread
Simulation ok, Atmega führt Anweisung nicht aus
Ich nehme mal an, Du willst PortD als Ausgang und PortC als Eingang, oder? Dann würd ich das so machen: [c]DDRC = 0x00; DDRD = 0xff;[/c] Oder was willst Du mit Deinem Code genau erreichen?
aber > richtig simuliert im AVR Studio. Sind die beiden Eingabegeräte (Taster?, Schalter?) an PORTC richtig angeschlossen? Ist das Ausgabegerät (LED?) an PORTD richtig angeschlossen?
-
Thread
XPlained USART zu USB-Buchse
den anderen Sachen liegt. Vielleicht hat das schon mal jemand gemacht und kann mir sagen wie es geht und welcher Datenlogger empfehlenswert ist. Viele Grüße David
Es ist sehr sehr kurios. Manchmal gehts, manchmal nicht und das bei gleichen Einstellungen. Im Moment geht wieder mal gar nichts ^^ Ich probier mal ein bissl weiter rum.
-
Thread
atmega 1284p interrupt fehler?
bis konvertierung abgeschlosen PORTC = ADCH; if (ADCH <50){ // Begrenzung des Registers OCR2A OCR2A=50; } else { OCR2A = ADCH; } } }
(ja der kondensator ist zu weit weg dann) das mit dem timer drei probiere ich aus...dachte das geht nur mit nem interrupt weil ich kein hardwareseitige anbindung habe. vielen dank schonmal lg fabian
-
Thread
PIC Assembler - 8bit mit 10 LEDs ausgeben (als Prozent)
Wert=Wert+25 Carry in LED8 .. Wert=Wert+25 Carry in LED1 Wert=Wert+25 Carry in LED0 Geht aber nicht ganz auf. 10*25 < 255 daher mal 25 mal 26 damit am Ende bei 1 auch LED1 brennt. avr
BSF PORTB,3 L5 BSF PORTB,4 L4 BSF PORTB,5 L3 BSF PORTB,6 L2 BSF PORTB,7 L1 BSF PORTC,6 L0 BSF PORTC,7 AUS [/c] Gruß Mario
-
Thread
IO-Pins während des Programmablaufs änderbar ?
Pin (z.B. PC1 vom Port C) auf GND lege und wenn ich PC1 auf VDD lege sind es Ausgänge. - > geht sowas ? (Ich denke das geht, kann es aber nicht testen da ich bei meinen ersten LED-Blink-Test bei meinem Test-Atmega8 den Reset-Pin als Ausgang definiert habe und jetzt nicht mehr über SPI programmieren
mit was willst du programmieren? (welche sprache) Erst mal ne antwort: es geht.
-
Thread
Frage zu ISP wegen Merkwürdigkeiten
lassen können. Ich benutze ein STK500. Habe z.B. ein LCD an PortD (Steuerung) und PortB(Daten). Mal geht die Programmierung und mal nicht (wenn das LCD angeschlossen ist). Außerdem funktionieren meine Funktionen an PortB nicht... also wenn ich z.B. PortC benutze habe ich keine Probleme, aber bei PortB
bit verdreht. Bsp. Ich setze die Page auf 0, aber bekomme Page 3. Habe im Code den DatenPort auf PortC geändert und schon geht es. Woran könnte das liegen??
-
Thread
Encoder/Drehgeber zu langsam
dem Weiterdrehen der letzte Flankenwechsel nicht erkannt, dann macht Dein Zähler einen Fehler. - So geht es also nicht vernümftig.
output 1=output PORTB = 0b00110000; // port b pullups 1=active // PORTC CONFIG // C7 DC_DISP OUT // C6 RES_DISP OUT // C5 CS_DISP OUT DDRC = 0b11100000; // port c output 1=output PORTC = 0b00000000;
-
Thread
Programm von mega32 auf mega328P convertieren
tun, gar nichts. Und das Kuriose ist, das ich nur ein paar Ports nicht initialisieren muss und es geht. Welche ist egal Hauptsache ein paar raus.... Mache ich die Klasse rein, geht es, mache ich ein paar Ports und die Klasse raus, geht es. Ich habe versucht an dem LSS File (mit und ohne Klasse)
überhaupt nicht! Nimmt einfach die 4.5er Version! Also: direkten Verweis auf 'avr-gcc-4.7.2' -> jetzt geht's!
-
Thread
Mega32 AnalogComparator Interrupt löst nicht aus
); while(1) { uint8_t i = 0; //um zu sehen, ob etwas passiert i = PORTC; i++; PORTC = i; } } void init(void) { TCCR0 = (1<<WGM00) | (1<<WGM01) | (1<<COM00) | (1<<COM01) | (1<<CS01); //Timer0 init auf FastPWM Inverting Mode, Prescaler
das ACD-bit lösche. So stand es in dem Thread. Aber auch ohne das Aus- und wieder Einschalten geht es nicht.....
-
Thread
ascii to int
OCR0A = empfangen; } } ISR(INT0_vect) { TCNT0 = 0; } ISR(TIMER0_COMPA_vect) { PORTC |= (1 << PC5); _delay_us(200); PORTC &= ~(1 << PC5); } [/c] Der Code sieht mitlerweile so aus und ich weiß echt nicht, wo noch der Bock liegt. Der Controller soll halt die Zeit zwischen 0 und
schleierhaft. Also: [c] char empfangen[5]; ... uart_gets(empfangen,4); [/c] Und dann geht das hier nicht mehr: [c] OCR0A = empfangen; [/c] Das musst Du anders lösen -> Deine Hausaufgabe ;-)
-
Thread
µc hängt sich auf bei meiner lüftersteuerung :/
PORTC ^= (1<<PC5); PORTB ^= (1<<PB0); _delay_ms(300); } } } [/c] Den kleinen Lüfter habe ich laut Anhang angeschlossen. Das Gate hängt am PB0 Port. VCC zapfe ich
Das habe ich bereits. Die LED geht an und aus. Es kann eigentlich nur an meiner Lüfter-Beschaltung liegen. btw. als Mosfet nehme ich das IRLZ34N. Fehlt mir vielleicht irgendwo noch ein Widerstand oder eine DIODE? mfg µc
-
Thread
Pointer auf PORT oder bessere Lösung
: [c] #include <avr/io.h> #define LAMPE1 PORTA, 0 #define LAMPE2 PORTB, 2 #define LAMPE3 PORTC, 5 #define ON 1 #define OFF 0 #define LAMPE_SWITCH_int(port, bit, onoff) \ if (onoff) { (port) |= (1 << (bit)); } \ else { (port) &= ~(1 << (bit)); } #define LAMPE_SWITCH(arg, onoff)
PINA.3; Lampe[1] = PIND.5; aber so, dass ich dann halt Lampe[n] = 0 schreiben kann und sie geht aus. Wenns nicht geht, nicht so tragisch aber schön wärs ;) Sorry falls ich die Lösung nicht verstanden hab von oben und das schon so geht. -Tom
-
Thread
DS18B20 multiplexen
zu bestimmen und damit alle vier Sensoren in Reihe abfragen. In etwa so: Do CONFIG 1WIRE = PORTC.1 Temperatur messen CONFIG 1WIRE = PORTC.2 Temperatur messen CONFIG 1WIRE = PORTC.3 Temperatur messen usw. loop Was meint ihr, haut das hin oder kriegt der Controller nen Koller
Das geht, ich mach das mit einem M128 und 6 Sensoren: [code] SUB DSRESET For ch = 1 to Channels Select Case ch Case 1: 1wreset PinG , 1 1wwrite &HCC , 1 , Ping
-
Thread
TASTENABFRAGE
Pull-Down Widerstand, dann änderte in: DDRC &= ~( 1 << PC0 ); // Eingang: Taster an PC0 PORTC &= ~( 1 << PC0 ); // interner Pull-Up NICHT aktiviert if ( debounce(&PINC, PC0) == 0 )
Der Pull-Down Widerstand (Down weil es "runter" auf Spannungspotential GND 0V geht und nicht Up auf Spannungspotential Vcc z.B. +5V) sorgt einmal für eine elektrische Verbindung und zum zweiten für eine Strombegrenzung, wenn der Stromkreis aktiviert wird (Ohmsches Gesetz). Wie
-
Thread
Verständnisproblem bei Erzeugung eines 36kHz Signals mit ATMega8
ausgegeben wird. Nix Oskar. Wieso? >// timer 2 interrupt routine >ISR(TIMER2_COMP_vect) >{PORTC=PORTC^(flag); // if bit 3 of “flag” is set, PORTC3 Geht auch in Software. Doch Oskar. Allerdings ist unklar, warum es beim TO nicht funktioniert. MfG Spess
-
Thread
Drehzahlmessung mit mikroC
Während der Berechnung hast du keine Kommastellen gebraucht. Erst ganz zum Schluss, wenn es darum geht, das Ergebnis zu begutachten und anzuzeigen, wurde bei der Ausgabe hinter die Hunderterstelle ein Komma eingeschmuggelt um dem Benutzer die 590 als 5.90 zu präsentieren. Mann kann Formeln auch
} if (PIR1.TMR1IF == 1){ PIR1.TMR1IF = 0; cntUberlauf++; PORTC = ~PORTC; } INTCON.GIE = 1; } // Hauptprogramm void main() { initialisieren(); while(1) { i=0; while(i<200){ if (i==0 & cntFlanke=
-
Thread
Falsche Ausgangsspannung Mega16
Guten Tag, im Anhang befindet sich ein Schaltplan mit meiner Problemschaltung. Dabei geht es lediglich um den ULN2003, der am Port C meines atmega16 angeschlossen ist. Der Debug-Code ist denkbar einfach: DDRC = 0b1111100; PORTC = 0x1111100; while(1); Am Ausgang des m16 liegt aber
Thomas schrieb im Beitrag #5846133: > PORTC = 0x1111100; Da gehört ein "b" hin, nicht "x". Außerdem fehlt bei beiden Anweisungen eine 1 für das höchste Bit (PC7). Ansonsten würde ich auch auf die JTAG Fuses tippen, an denen liegt es fast
-
Thread
Lokale Variable statt static, aber optimiert. Wie?
Maxim B. schrieb im Beitrag #5950976: > Was habe ich falsch gemacht? Das geht nur mit C++... Also mit g++ statt gcc kompilieren
brauchtest Du einen Kommentar, der hier aber auch nicht viel hilft. Nimm wenigstens enum-types dafür (geht in C nicht besser).
-
Thread
Mega8 assembler LCD ADC beendet nicht
lcd routine aus dem tut leicht verändert so, dass E und RS an PORTB hängen, obwohl die daten durch PORTC laufen. Das funnktioniert soweit alles einwandfrei und sollte mit dem Problem (eigentlich) nichts zu tuhen haben. Die Sache ist, dass ich zwecks Abgastemperatur ein thermoelement mit Op am ADC4
Hat sich erledigt, hatte es in geistiger abwesendheit mit MOV versucht klar, dass das nicht geht.... Danke an alle beteiligten, hätte wohl noch ne weile gedauert, bis ich durch das brett geschaut hätte.... :D :D mfg Amper
-
Thread
G-LCD bei Pollin
PS: Interleaved geht mit VRAM natürlich auch, mit Flipflop für's Gating, aber die Anordnung der Daten im Speicher ist dann nicht so elegant. Wodurch die Möglichkeit verloren geht, Zeilen mit einem VRAM-Zugriff komplett
Na das sieht doch schon Klasse aus :). Also wenn es an's Bestellen geht, ich bin dabei.
-
Thread
LCD mit ATMEGA128 und Peter Fleury
in der ersten und dritten zeile erscheinen Balken. Ich lade das Programm auf den µC, das Display geht aus und tut gar nix. Die lcd.c und .h habe ich in das projekt im AVR studio eingebunden, daran liegts schonmal nicht. Danke schonmal für eure hilfe Gruß
_.2F_ATmega128 Ohne es geprüft zu haben: es könnte im M103C-Modus Schwierigkeiten mit PORTC geben