-
Thread
unter C die Funktion Sleep() nutzen
= int main(void){ DDRC |= _BV(PC0); //Line1 PortC=1 "out" while(1) { // ewig PORTC &= ~_BV(PC0); //Bit PC0=0 (0V)---an //delay_ms(500); //Wartezeit 0.5 sek. PORTC |= _BV(PC0); //Bit PC0=1 (5V)---aus // delay_ms(500); //Wartezeit 0.5 sek. } } //========
-----ENDE---------------------------------------- Das Prog zählt immer von 3 bis 1 toll oder. So geht die sleep function unter vc++ Fals ich fehler gemacht hab sorry bin neu in c/c++.
-
Thread
Messung eines rechteckigen Signals
>Zum Thema: Hier geht es um rechteckige Signale, wie macht man das bei >quadratischen Signalen, dreieckigen Signalen oder gar *Sinus*? Man muß BASCOM lernen! Damit kann man auch noch sechseckige Signale dekodieren.
Beispiel: Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Portc.7 , Rs = Portc.6 Mit dieser Zeile ist alles gesagt, der Bediener muß sich nicht um die Initialisierung des Displays kümmern. Er könnte aber auch die Pinzuweisung und die Initialisierung "von Hand
-
Thread
Python Uart einlesen und ausgeben
serial** ansehen: https://abyz.me.uk/rpi/pigpio/python.html falls es dir um die UART Behandlung geht. Um was es dir bei der Decodierung geht solltest du verständlicher beschreiben.
Maske, die zwischen 0 und 0xFF in der Timer-ISR gewechselt wird. Ob das so einfach in Python geht, weiß ich nicht. In C sind es ein paar Zeilen: [c] volatile uint8_t maske; // an PORTC sind die LEDs; Aufruf in der Endlosschleife der main() PORTC = datenbyte & maske; . .
-
Thread
4 Zeiliges Display mit library für 2 zeiliges Display ansteuern
#byte lcd = 0xF81 // This puts the entire structure #elif defined use_portc_lcd #byte lcd = 0xF82 // This puts the entire structure #elif defined use_portd_lcd #byte lcd = 0xF83 // This puts the entire structure #else
Hi >Weiß denn sonst keiner eine passende Lösung? Erzähle erst mal, was genau nicht geht. Ein Datenblatt von deinem Display wäre auch nicht schlecht. MfG Spess
-
Thread
ATmega 1284p Port C
Codebeispiel: [c] int main(void){ pwm_init(); while(1){ DDRC = 0b00000000; PORTC = 0b00000000; _delay_ms(1); DDRC = 0b00111111; PORTC = 0b00000000; _delay_ms(1); DDRC = 0b00111111; PORTC = 0b00111111; _delay_ms(1); } } [/c] vielen Dank
Die 1k-Widerstände einfach durch 0 Ohm ersetzen geht nicht. Dann funktioniert sein Steuer-Patent, die PWM zu den einzelnen Stufen abschalten zu können nicht mehr.
-
Thread
PIC18F4550 - PIC macht "nix"
/ PORTB löschen (kann beim Start undef. Zustand annehmen) LATC = 0x00; // PORTC löschen (kann beim Start undef. Zustand annehmen) LATD = 0x00; // PORTC löschen (kann beim Start undef. Zustand annehmen) LATE = 0x00; // TRISA
Ist so zwar nicht gerade komfortabel aber ich hoffe es geht einigermaßen. edit: Die Batterie und der Goldcap sind nicht bestückt!
-
Thread
MM5450 Treiber mit Atmega8
T0-Overflow ruft IR auf if(PB0==0 && n>=0) //d.h. als nächstes kommt eine positive Flanke { PORTC=z[n]; //Daten n--; } else PORTC=z[0]; //nach 36 Datenbits startet Schieberegister im MM5450 PORTB ^= (1<<PB0); //CLOCK } int main(void) { DDRB = 0xFF; PORTB=0x00; DDRC
ein Treiber-IC steuert 4 Anzeigen und beide ICs sind parallel (Daten und Clock vertauscht). Das geht, da ja erst auf ein Startbit gewartet wird. D.h. wenn ein IC angesteuert wird, schiebt der andere nur Nullen rein. Zu Anfang sende ich erstmal 36 Nullbits, damit der Treiber in nem definierten Zustand
-
Thread
Wie bekomme ich eine Status Led für Uart
USART_RXC_vect) //Empfangsinteruppt wird ausgelößt sobald ein Byte empfangen wurde { PORTC^= (1<<PC0); } [/c]
; } [/c] und in der mainloop (quick and dirty): [c] if(timeout) { PORTC |= (1<<PC0); -- LED einschalten timeout--; } else PORTC &= ~(1<<PC0); -- nach gewisser Zeit: LED aus [/c]
-
Thread
U(S)ART empfängt nicht
BAUD_)*16L)-1) void cominit(void); void send(char val); int main(void) { sei(); DDRC=0xff; PORTC=0x00; cominit(); send('s'); PORTC++; for(;;) { } } void cominit() { UCSRB |= (1<<TXEN); // UART TX einschalten UCSRC |= (1<<URSEL)|(3
ich sollte schlafen gehen, mit RX... gehts natürlich
-
Thread
5 Tasten am ADC
Ja, das Board wurde mit dem Quarz ausgeliefert und der ATmega32 geht bis 16MHz.
Anweisung *nicht* funktioniert: [c] if(second_puls == 1) // LED7 als Sekundenanzeige PORTC ^= (1<<PC7); [/c] aber diese Anweisung, um die LED blinken zu lassen: [c] if(second_puls == 1) // LED7 als Sekundenanzeige PORTC |= (1<<PC7); if(second_puls == 0) PORTC
-
Thread
externer Interrupt (PCINT1) atmega88 - Sprung nach 0x0000
PinChange-Interrupts PCINT8..15 zuständig ist. Es gibt drei PinChange-'Blöcke': PortB mit PCINT0..7 PortC mit PCINT8..15 PortD mit PCINT16..23 PortB ist Block 0, PortC ist 1 und PortD ist 2. Und dementsprechend ist auch die Bezeichnung der Register. Alles mit 0 gehört zu PortB. Und der Pin mit PCINT1
schrieb im Beitrag #1819690: > Es gibt drei PinChange-'Blöcke': > > PortB mit PCINT0..7 > > PortC mit PCINT8..15 > > PortD mit PCINT16..23 Danke nochmal!!!
-
Thread
Anforderungssammlung CAN Hausbus mit PIC µC
node IDs Rx_ID as longint ' Hauptprogramm initialisieren main: TRISB.7=0 TrisB.6=0 PORTC = 0 ' clear PORTC TRISC = 255 ' set PORTC as input PortB.6=0 ' CAN CS Can_Init_Flags = 0
das so anordne, > dass ich das abflexen kann wenn der Platz mal ned reicht ;-) Klar. wenns net geht gehts hal net, au net schlim... Bis dann, ich geh jetzt schlafen! Timo
-
Thread
Ereignis innerhalb einer Zeit
jetzt mal eine konkrete Frage: Geht mein Projekt nur mit einem Interrupt-gesteuertem Programmablauf, oder würde es auch ohne gehen? danke
weiterer Anruf getätigt wird, dann schalte Heizung ein { AnrufAnzahl=0; PORTC = 0x00; warte_minuten(1); PORTC = 0xFF; } } } } [/c] Wo liegt noch der Fehler? Danke
-
Thread
LEDs langsam auf- und wieder abdimmen
Und bevor du dich wunderst, dass das Ganze nicht schön langsam auf und ab geht, guck dir folgenden Artikel mal an: http://www.mikrocontroller.net/articles/LED-Fading
irgendwie möglich das auf- und abfaden auch auf andere Ausgänge des Microcontrollers zu übertragen, oder geht das jetzt nur auf dem Ausgang OC1A ?? Grüße Anando
-
Thread
ATmega8 kleiner LED-Cube
Schau dir auch genau an auf welchen Ports du die 300mA ziehen darfst, da gibts eine Ausnahmeregel für PortC
= 21 I/O Pins verfügbar. > Allerdings wenn ich nachzähle komme ich nur auf 20? Also der PortB geht von PB0..PB7, PortD geht von PD0..PD7, PortC aber nur von PC0..PC6, insgesamt 8+8+7=23 Pins. OK, Reichelt kann zählen (vorausgesetzt ich kann zählen), hast du vielleicht den Reset-Pin (PC6, Pin 1)
-
Thread
mega32 unterschiedliche Portpegel trotz "gleicher" Initialisierung
Hallo! Fehler beim ATMEGA32 an PORTC, wenn da mal nicht JTAG am Proezessor eingeschaltet ist !? gruß, Bjoern
7Segment/7Segment.html#oben mit dem Unterschied, dass ich digits mit gemeinsamer Kathode habe. PortC stuert die digits, PortA die Segmente.
-
Thread
entprellen nach Dannegger
LED_PORT = 0xFF; LED_DDR = 0xFF; // long press: task 2 sei(); PORTC &= ~(1<<PC5); // LED5 zum Testen einschalten while(1) { if( get_key_short( 1<<KEY1 )) PORTC &= ~(1<<PC1); //mit entprellen if ( !(PINB & (1<<PINB4)) ) PORTC &= ~(1<<PC4); // Ohne entprellen LED4 ein } } [/c] Die Test LEDs 5 und 4 gehen jeweils an nur die LED 1 mit dem entprellen nicht, ich sehe das Problem irgend
-
Thread
Großes Problem mit uC -> Entering programming mode failed
soll das heißen?)? Um ganz ehrlich zu sein: Ich habe keinerlei Ahnung, warum es jetzt nicht mehr geht oder was ich tun kann, damit es wieder geht. Alles, was ich über google finden konnte (z.B. hier: http://www.roboternetz.de/community/showthread.php?22372-quot-Entering-programming-mode..-FAILED-quot-AVRISP-MKII
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; } [/c] Und dieses Programm will ich jetzt wieder laden. Meine Frage: Wo und
-
Thread
Binärzähler in C - STK - 500
Wenns um Sekundengenauigkeit geht, würde ich eher einen geeigneten Quarz + internen Prescaler verwenden und dann mit Interrupts arbeiten. Hab ich bei meiner Binäruhr so erledigt.
sei(); // global interrupt an } void anzeigeBinaer() { PORTB = Sekundenaktuell & 15; PORTC = Sekundenaktuell >> 4; PORTC |= (Minutenaktuell << 2); } int main(void){ setup(); while(1){ } } ISR(TIMER1_OVF_vect) { TCNT1 = 3036; // zählerwert
-
Thread
PLED mit P. Fleury Problem
define LCD_DATA3_PIN 3 /**< pin for 4bit data bit 3 */ #define LCD_RS_PORT PORTC /**< port for RS line */ #define LCD_RS_PIN 3 /**< pin for RS line */ #define LCD_E_PORT PORTC /**< port for Enable line */ #define LCD_E_PIN
return 0; } -Einfügen von zusätzlichen Delays hat keinen Effekt -Bereits verschiedene Ports (PORTC, PORTB) zur Ansteuerung getestet. Kein Effekt. Würde mich sehr über Hilfe freuen, vielen Dank, Simon
-
Thread
EA eDIPTFT43-A RS232 und ATMAGA88 mit BASCOM
doch dann der Displayinhalt verschwinden? Oder muss das bcc auch noch durch was ersatz werden? Und geht das mit dem Print? Der ATMEGA sendet auf jedenfall Daten, das habe ich mit dem Oszi überprüft.
Ausgabesing_ohne_bcc + Chr(bcc) Print "{017},3,#DL,"; Print Ausgabesing_ohne_bcc Do Toggle Portc.5 Waitms 50 Toggle Portc.5 Waitms 50 Loop End[/code]
-
Thread
4 Einzelbytes --> 32-bit Variable?
unsigned char middel_1_count als Middel0: TCNT3L, unsigned char middel_0_count als Lowbyte: PORTC, unsigned char low_count Wie wird hieraus eine 32-bit Variable? Bisher habe ich nur einfache I/O-Operationen in C geschrieben. Aber jetzt gehts, glaub' ich, ans 'Eingemachte'. Vielen Dank
unsigned long x = R4 | ((unsigned int)TCNT3H << 8) | ((unsigned long)TCNT3L << 16) | ((unsigned long)PORTC << 24); Peter
-
Thread
mega128, ext. Interrupt spinnt
Ohne die drei Zeilen EICRA, EIMSK und sei() funktioniert das auch ganz gut. Aber Interruptgesteuert geht das gar nicht. #include <avr/io.h> #include <avr/signal.h> #include <avr/interrupt.h> SIGNAL (SIG_INTERRUPT1){ PORTC ^= (1<<2); // LED2 togglen } int main (void){ DDRC = 0xFF
. Das ist OK, aber LED2 rührt sich nicht. Bei 0V leutet LED2 ganz leicht schwächer(!) und LED7 geht leider nicht aus. Lege ich erneut 5V an, leuchtet LED2 wieder minimal stärker. 5V wieder weg: LED2 wieder weniger 5V wieder ran: LED2 geht aus!!! 5V wieder weg: LED2 geht an! Und ab jetzt
-
Thread
invertierten UART Empfangen mit Atmega88
C5 mit RXD. Immer wenn wenn ein Pin change auf D2 kommt, ändere ich C5 was dann in den RXD Pin geht. Problem ist: es kommt hin und wieder zu bitfehlern (selten, aber sie kommen), die nicht auftreten wenn ich die invertierung in hardware mache. Das ist der Code: ISR(PCINT2_vect) { if(PIND & (1<<PIND2)) { PORTC &= ~(1<<PORTC5); } else { PORTC |= (1<<PORTC5); } } void PCINT_Init() { PCMSK2 |= (1<<PCINT18); // D2 PCICR |= (1<<PCIE2); } Jemand ne Idee ?
-
Thread
USART sendet nur kryptische Zeichen zurück
Eingänge mit internen Pull-Ups ausser PB0 & PB1 setzen DDRB = 0x00; PORTB = 0xFC; //PORTC die ersten 4 Bits auf Ausgänge setzten DDRC = 0x0F; uartInit(); //USART init sei(); //Interrupts erlauben //Hauptschleife while(1) { PORTC |= (1<<PC2);
auch ohne Quarz. Nun mit Interrupts habe ich plötzlich Probleme mit der Taktfrequenz ? Da geht mir der Zusammenhang irgendwo ab. PS: Vielen Dank für die tolle Hilfe ;)
-
Thread
RGB-Fernbedienung am AVR - Problem mit IRMP
0x1234 //{ switch (irmp_data.command) { case 0x9A65: PORTC|=(1<<PC1); break; // Taste grün case 0x18E7: PORTC|=(1<<PC2); break; // Taste gelb case 0x1AE5: PORTC|=(1<<PC3); break; // Taste rot
Jetzt hab ichs. Ich darf nur das 8-Bit-Commandbyte verwenden. Jetzt gehts:-) Das IRMP ist ein Spitzenprojekt!!:-) Danke an dieser Stelle an Frank M. Frohe Ostern
-
Thread
SPI Master mit Attiny1616
] void init_spi() { PORTA_DIRSET = 0x02 | 0x04 | 0x10; //set clock, MOSI and NSS as output PORTC_DIRSET = 0x02; //set rst as output PORTC_OUTSET = 0x02; //set reset high SPI0_CTRLA = 0x23; SPI0_CTRLB = 0x04; } [/c] [c]void readReg(uint8_t reg, uint8_t *result, size_t length = 1) {
da stehen, also eine lokale Redefinition(?) der Methode? Ohne das setzen aller PINS und Register geht natürlich gar nichts...
-
Thread
ATmega644 tot?
meinen neuen ATmega644 ausprobieren, aber irgendwie scheint er tot zu sein :-( - ISP Programmierung geht - HV/parallel Programmierung geht - JTAG geht nicht Wenn ich das Programm geflasht habe, macht er einfach... nichts. Die Portausgänge sind LOW (müssten doch eigentlich high sein?) und er scheint
was falsch sein kann, oder ist er wirklich tot? Woran machst du das genau fest? Led-Blinken an PortC oder an etwas etwas koplexeren. MfG Spess
-
Thread
vergleice von zahlen
nicht: eingabe = PORTD; // output the higher 8 bits if (eingabe > 0x0F) { PORTC |= (1 << PC0); } if (eingabe < 0x0F) { PORTC &= ~(1 << PC0); } port d ist als eingang und funktioniert auch, port c ist ein ausgang und funktioniert auch. habe ich getestet mit "PORTC = PIND;" im selben programm. aber irgendwie ist PORT PC0 immer low, egal welchen wert ich an port D über schalter eingebe. wieso ist das so, ich komme da absolut nicht drauf, wo der fehler sein
-
Thread
PIC16F877 - Timer0-programm startet nicht
Ich habs jetzt verbessert und es sieht gez so aus(siehe Anhang). Es geht immer noch net! gibt's irgendwo nen Tutorial über den Timer0 mit beispiel code?
hey Leute es geht um das selbe Problem. Sorry! Ich brauch es eingetlich nicht nicht für "Pic" sondern einfach nur auf C ....für den Timer1,0; SPI...wobei ich da wirklich keine Möglichkeiten gefunden habe..wie´s funktioniert
-
Thread
TSOP macht was er will, hilfe
PORTA =0xff; //eingänge DDRA = 0x0; // PortB PORTB = 0x0; //ausgänge DDRB = 0xff; // PortC PORTC = 0x0; //ausgänge DDRC = 0xff; // PortD PORTD = 0xff; //eingänge DDRD = 0x0; ACSR = 0x80; } void interruptinit(void){ MCUCR = 0xF;//(1<<ISC11) | (1<<ISC10);
Wenn du ne LED vom Portpin gegen GND schaltest, geht sie _aus_ sobald du den Pin auf 0 setzt. Änder den Wert in der INT Routine mal auf 0xFF und versuch es nochmal ;-)
-
Thread
hd44780 initialisierung
Du setzt deine PORTC Pins für das LCD nicht auf Ausgang.
holger schrieb im Beitrag #2929970: > Du setzt deine PORTC Pins für das LCD nicht auf Ausgang. Das stimmt natürlich. Nachdem ich dies tat blinken sehr kurz alle Pixel auf beim flashen, dann ist wieder ein Pixelloses Display zu sehen... holger schrieb
-
Thread
ATMEGA16 LCD 2x8 ansteuern (4Bit-Interface)
; } void init() { DDRA=0xFF; // DDRA als Ausgang DDRC=0xFF; PORTA=0x00; PORTC=0x00; } void send(int VeeEnRsRWData4321) { PORTA=1<<En; // Enable delayus(50); PORTA=VeeEnRsRWData4321; // Vee En Rs RW Data4-1 delayus(100); PORTA=0<<En; // Werte
lcd_init(); int i=0; while(i<10) // nur zum Anzeigen, dass While-Schleife startet { PORTC=0x0F; delayms(100); PORTC=0xF0; delayms(100); i++; } PORTC=0x00; while(1) { // H WriteChar(01011000); WriteChar(01011000); delayms(500);
-
Thread
Encoder lesen, Problem mit Code
wohl mit ungenügender Entprellung des Encoders zusammenhängt. Weil wenn ich gaaaaanz langsam drehe geht es auch abwärts korrekt. Kann mir jemand auf die Sprünge helfen mit dem Entprellen? Kann ich den oben geposteten Code softwaremässig entprellen, wenn ja wie? Gruss Martin
Zu große Cs verwischen die Flanken zu stark, probiere mal kleinere (10nF). Wenn´s dann nicht geht, ist es ein anderes Problem. Haste ´nen Scope da, um mal die Flanken und eventuelle Preller zu sehen?
-
Thread
WinAvr - Variable wird nicht von einer *.c in die andere übernommen
steckt der empfangsinterrupt. Das ganze funktioniert auch, das sehe ich an meinen LED's die ich am PortC angeschlossen habe. Wenn das Telegrammendezeichen empfangen wurde wird Portc auf 0x0A gesetzt. Gleichzeitig setze ich uart0_rxd_complete=1;. Jetzt müsste in der main.c die Abfrage if(uart0_rxd_complete
generell keine Variable von der uart.c in die main.c übertragen werden kann. Hab ich überprüft und es geht. Aber wieso dort nicht ? Das Programm ist sehr klein. Die Variable wird 100%ig nirgendswo auf 0 gesetzt. Jetzt hab ich echt kein Plan mehr :(
-
Thread
Erstes Board: 7-Segment Anzeige
So: Ich habe mal den PortC an Stiftleisten gehängt und an PortB noch zwei LED's... Den ISP-Anschluss ist nun auch fast fertig, ich hab enur noch ein kleines Problem mit GND... Die beiden GND-Pins des Atmega8, müssen die unbedingt
soviel Aufwand getrieben wurde? > Hätte eine Lochrasterplatine nicht gereicht? Sicher aber ihn geht ganz bestimmt um lernen! ich hätte das gleiche gemacht, ich würde die Platine bestimmt noch mal Ätzen bist es PERFEKT aussieht!
-
Thread
usart problem mit ttl-Pegel
> > Ist mir aber zu kompliziert. Ich mach das in software: Totaler Unsinn. Und ein Soft-UART geht anders.
. [c] #define RX_BIT_TIME 96 #define RX_DATA (PINC & (1<<2)) #define TEST_LOW PORTC &= ~(1<<3); #define TEST_TOG PORTC ^= (1<<3); uint8_t sub_usart_rx(void) { uint8_t data=0; TEST_LOW; while(RX_DATA); // Warte auf fallende Flanke vom Startbit _delay_us
-
Thread
C++ RS232 Timeout-Problem ?
www.teuniz.net/RS-232/index.html Ich sende mit einem RS232-USB-Dongle zum Arduino Uno und von dort geht es parallel in einen Homecomputer (Commodore Plus/4). Das funktioniert einwandfrei mit Linux "cat". Das zu sendende Programm wird in ein Array geladen und dieses dann um einige Parameter für den Empfänger
sta (t_lo),y ; save lda #$40 sta portc ; set ack (pc6) asl sta portc ; and delete ack - lda portc cmp #$80
-
Thread
AVR Studio und Funktion _delay_ms()
delay_time = 2000; DDRB = 0xFF; // PORTB STK500 LEDs PORTB = 0x00; DDRC = 0xFF; // PORTC 2x 74C48 PORTC = 0x00; for (;;) { for (int i = 0; i <= 255; i++) { _delay_ms (delay_time); PORTB = i; PORTB = ~PORTB; PORTC = i; _delay_ms (delay_time
ja die I/O Ports auch > nicht.Oder verstehe ich das falsch? Da verstehst du etwas falsch. Es geht nicht um den Mikrocontroller, sondern um das Programm avr-gcc.exe an sich. Das ist für einen viel neuere Prozessoren gebaut und verwendet Befehle (für sich selber, nicht das, was es generiert!) die
-
Thread
ADC Text-LCD-Ausgabe
//Mittelwertübergabeaus 5 Einzelmessungen - Kanal 0 if (adcval >= 1) { PORTC |= ~(1<<PC0); } else { PORTC |= ~(1<<PC3); } /* LCD-Überprüfung zur Probe - eigentlich soll hier der ADCW ins itoa und dann aufs LCD */ char my_string[12
diese Aussage macht das ADSC Flag: * Ich tu nichts mehr, das Ergebnis steht im ADCW * Holla, heut gehts rund, Bin bei der Arbeit einen Wert zu wandeln
-
Thread
BRGE-Befehl unklar
Moin Moin, ich hab mal wieder ein kleines Problem mit meinem Mega32... Es geht um den BRGE-Befehl. [avrasm]freqschleife: out portc,wf inc wf cpi freq,1 brge freqcount rjmp freqschleife freqcount: mov a1,freq
Anstatt BRSH geht dann auch BRNE, denn x ≥ 1 ich gleichbedeutend mit x ≠ 0 Und es geht auch ein CPSE wenn man ein Register übrig hat: [avrasm] clr zero freqschleife: out portc, wf inc wf
-
Thread
Probleme beim Einschalten einer LED
Fotosensor nicht beleuchtet->geringe Spannung am ADC) leuchtet die LED bereits, wird der Sensor beleuchtet geht die LED aus, wenn ich dann jedoch die Beleuchtung des Fotosensors wieder beende, geht die LED NICHT wieder an(obwohl der codeabschnitt in dem das passieren sollte durchlaufen wird, siehe log-datei).
löschen geht anderst: [c] if (result<30) {uart_puts (" LED ist an "); PORTC &= ~(1<<PC5); }; [/c] Schau mal bei Bitmanipulationen ;) avr
-
Thread
LCD-Display AV1624 ansteuer Probleme
Hi Um welchen Controller geht es? MfG Spess
Pin) | (1<<DB2_Pin) | (1<<DB3_Pin) | (1<<DB4_Pin) |(1<<DB5_Pin) | (1<<DB6_Pin) | (1<<DB7_Pin); //Portc Alle als Outout Exe_DDR = (1<<R_W_Pin) | (1<<Enable_Pin) | (1<<RS_Pin); //PortA teils als Output return; }
-
Thread
ATMEGA 16P + ADG3300
folgendes Problem. Wir können zwar erfolgreich auf HIGH gehen, aber wenn der Prozessor wieder auf LOW geht bleibt der HIGH Zustand am Display erhalben. Vielleicht kennt jemand von euch das Problem und kann uns helfen. Danke im Vorraus. mfg Martin
> aber wenn der Prozessor wieder auf LOW geht bleibt der HIGH > Zustand am Display erhalben Habt ihr das am Prozessor direkt mit dem Voltmeter gemessen oder indirekt durch Ausgabe einer 0 am Port erschlossen? Bei Mega16, PORTC und Problemen
-
Thread
Kann einer helfen?
Edit: Verlesen. Die LEDs sind Low-Aktiv. Das heißt, wenn der zugehörige Pin LOW ausgibt, geht die LED an. Da du das Port-Register nicht angefasst hast, ist PORTC komplett auf 0x00. Damit ist Pin C1 auf Ausgang (DDRC = 0x01) und gibt LOW (sprich, annähernd 0V) aus. Bei PORTC = 0x01 geht der Pin auf HIGH (nahezu 5 V) und die LED geht aus.
-
Thread
Timer2 beim ATmega8 tut nicht richtig
Statusregister sichern in temp, SREG push temp ;Timer2 Compare-Interrupt ;Motor ausschalten sbi PORTC, PC_Motor0 sbi PORTC, PC_Motor1 pop temp out SREG, temp reti TIM2_OVF: ;Verwendete Register sichern push temp ;Statusregister sichern in temp, SREG push temp ;Timer2
andi temp, 1 << ST_Motor_Direction breq TIM2_OVF_b ;Motor läuft rückwärts sbi PORTC, PC_Motor0 cbi PORTC, PC_Motor1 rjmp TIM2_OVF_a TIM2_OVF_b: ;Motor läuft vorwärts cbi PORTC, PC_Motor0 sbi PORTC, PC_Motor1 TIM2_OVF_a: pop temp
-
Thread
twi atmega c an andern Port
habe mir selbst twi Funktionen geschrieben, starten, schreiben etc. funktioniert auch alles super an PORTC PIN 0 SDA und PIN 1 ist SCL. Wie im betreff erwähnt schreib ich in C mit Codevision und einem atmega32. Wie kann ich die beiden Signale nun an anderen Pins ausgeben? Geht das überhaupt? Warscheinlich
Giebel schrieb im Beitrag #1862821: > Wie kann ich die beiden Signale nun an anderen Pins ausgeben? Geht das > überhaupt? Gar nicht. Du benutzt den HardWare TWI, und der fest verdrahtet aud diese beiden Pins. > Die Schaltung ist halt der Atmega und ein PCF8574A mit ein paar Leds. An > PORTC funktioniert
-
Thread
myAvr Atmel extern laufen lassen.
Programmieranschluß wäre noch ganz gut, damit man ihn leicht umprogrammieren kann. Am bequemsten gehts mit einem Bootloader. Peter
missen. Ich betreibe ihn 1-wire mit einem Ein-Euro Billigst-China usb-rs232 Wandler aus der Bucht, geht ab wie Schmitz' Katze.
-
Thread
Atmega8 +ADC+Timer = Programmierung nur mit Reset-Taste
zur Not auch eine LED) an den Reset Eingang gehalten? Dann müsstest du sehen, wie der Pin auf Masse geht, ehe ihn der Programmer anspricht.
angeschlossen. Kannst du auch nicht so ohne weiteres. PIN1 (Reset) ist nicht mit PC6 der Stiftleiste PortC verbunden sondern mit PORTE/AUX Pin RST. MfG Spess
-
Thread
Mega8 resetet wenn INT ausgelöst wird
Portd.7 Config Lcd = 16 * 2 Cursor Off Waitms 100 Cls Wait 1 Lcd "Start" Do Waitms 100 Portc.4 = Not Portc.4 Loop End '---------------------------------------------------------- ' Interruptroutine Int0 '---------------------------------------------------------- Int0serv: Portc.5 =
' Interruptroutine Int1 '---------------------------------------------------------- Int1serv: Portc.5 = 1 Return Ich ziehe die INTs per Taster auf Masse. Wenn ich diese Taster drücke, wird zwar der INT ausgelöst (LED geht an oder aus), jedoch resetet sich der Mega8...soll heißen, das LCD