-
Thread
Atmega 644 JTAG und PORTC
ist oder ich einfach was vergessen habe. Kann es sein dass wenn die JTAG Schnittstelle aktiv ist PORTC 6 u. 7 nicht als Ausgänge funktionieren? Ich bekomme diese nicht gesetzt. Im AVR-Studio sehe ich zwar dass das Directionregister richtig beschrieben ist und auch im PORTC Register ist der Ausgang
Hab JTAG mit den Fuse-bits deaktiviert und der PORTC funktioniert nur ordnungs- bzw. bestimungsgemäß.
-
Thread
MAIN Problem
if(!(PINA & (zaehler1))) { PORTC |=(LED1); ein _delay_ms(1); } else { PORTC &=~(LED1); wert1++; wert1min++; while(!(PINA & (zaehler1))); } Controller zählt ins Unendliche
void) { DDRA &=~ (zaehler1); DDRC |= LED1; while(1) { if(!(PINA & (zaehler1))) { PORTC |=(LED1); _delay_ms(1); } else { PORTC &=~(LED1); wert1++; wert1min++; while(!(PINA & (zaehler1))); } } } eigentlich sollte es so gehen, das wenn der zähler auf low geht ist
-
Thread
Erstes Programm in C (PIC18F2550)
// Solange ADRESH größer als 128 ist { LATCbits.LATC7 = 0; // Bleibt der PORTC,7 aus } else { LATCbits.LATC7 = 1; // Sonst geht er an! } } } [/c] Und hier soll entschieden werden ob LED an oder aus
// Solange ADRESH größer als 128 ist { LATCbits.LATC7 = 0; // Bleibt der PORTC,7 aus } else { LATCbits.LATC7 = 1; // Sonst geht er an! } } } void Setup_ADC(void) { ADCON0bits.ADON=0; TRISAbits.TRISA0
-
Thread
Stoppuhr mit Atmega 8 und 4x20 LCD Display
Timer1 Timer1_isr Enable Interrupts Const Timervorgabe = 22456 Timer1 = Timervorgabe Config Portc.5 = Input Config Portc.4 = Input Taste_startreset Alias Pinc.5 Taste_stop Alias Pinc.4 Portc.5 = 1 'Pullupwiderstand Portc.4 = 1
Timer1 Timer1_isr Enable Interrupts Const Timervorgabe = 19456 Timer1 = Timervorgabe Config Portc.5 = Input Config Portc.4 = Input Taste_startreset Alias Pinc.5 Taste_stop Alias Pinc.4 Portc.5 = 1 'Pullupwiderstand Portc.4 = 1
-
Thread
Problem Bascom / LCD mit Atmega16
erklärst du nicht was du nun willst. Gib die config- zeile für LCDPIN an : Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.6 , Rs = Portc.4 MfG
mit LCD 16x2 nach anpassen auf meine Hardware mit $crystal = 4000000 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
-
Thread
Potentiometer mit ADU Atmega328PB [HILFE]
Mich irritiert dies hier > PORTC = 0xFF; // Alle Segmente der 7-Segemntanzeige ... Anschließend wird mit PC_Bitmaske verodert, da ändert sich folglich dann gar nichts. Muss das nicht PORTC = 0 heißen (je nach Segment-Beschaltung
Vorschlag: PORTC &= PC_Bitmaske[number]; (Vielleicht auch PORTC &= ~(PC_Bitmaske[number]), je nachdem, wie PC_Bitmaske codiert wurde)
-
Thread
Atmega 32 zu hoher Low Pegel
= (0 << 6); DDRC |= (0 << 7); MCUCSR = (1<<JTD); MCUCSR = (1<<JTD); while(1==1) { PORTC |= (0 << 7); PORTC |= (0 << 6); PORTC |= (0 << 5); PORTC |= (0 << 4); PORTC |= (0 << 3); PORTC |= (0 << 2); PORTC |= (0 << 1); PORTC |= (1 << 0); } }
unpassenden Bezeichnungen laufend Eigentore schiessen. In deinem Fall (solange es sowieso nur ums testen geht) [C] int main() { DDRC = 0x00; while( 1 ) { PORTC = 0x00; } } [/C] dann gibts auch erst mal keine Diskussionen. Und das JTAG: Schalte es per Fuse aus. Dann bist du auch
-
Thread
Bascom + LCD + Atmega 8 nichts auf dem display
LCD-Output Ddrc = &B11111111 Config Lcd = 20 * 2 Config Lcdbus = 4 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portd.3 , Rs = Portd.2 Int Initlcd Cls Lcd "hallo" End Was ist daran falsch hab sogar den lcd in den options eingestellt.
crystal = 8000000 'Quarz: 8 MHz Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portd.3 , Rs = Portd.2 Config Lcd = 20 * 2 Cls Lcd "hallo" End wenn das nicht geht, ist noch die kontrasteinstellung eine fehlerquelle
-
Thread
Laufzeitverhalten main-Funktion
PORTC ^= (1<<PC3); trigger_1ms = false; } [/c]
Aber der TO wollte das haben: PORTC ^= (1<<PC4); und nicht das: PORTC = (1<<PC4); Und "PORTC ^= (1<<PC4);" ist nicht interruptsicher
-
Thread
LED umschalten mit Taster
tasteJetzt ) { if( tasteJetzt == TASTE_GEDRUECKT ) { PORTC = 0b00000001; } if ((tasteJetzt == TASTE_GEDRUECKT) && (PORTC=0b00000001)) { PORTC=0b00000000; PORTC=0b00000010; }
geht das nicht einfach mit: [c] if( PINB & ( 1 << PB0 ) ){ if(PortC == 0b00000100){ PortC= 0b00000001; } else { PortC << 1; } _delay_ms(30); } [/c]
-
Thread
Codeschloss Timeout
; j++; PORTC |= (1<<PC5); _delay_ms(200); PORTC &= ~(1<<PC5); } if ( !(PIND & (1<<PIND1)) ) {t[j]=9; j++; PORTC |= (1<<PC5); _delay_ms(200); PORTC &= ~(1<<PC5); } if ( !(PIND & (1<<PIND0)) ) {t[j]=12; j++; PORTC
{ //Code falsch //3 lange Pieps über Summer PC5 PORTC |= (1<<PC5); _delay_ms(300); PORTC &= ~(1<<PC5); _delay_ms(300); PORTC |= (1<<PC5); _delay_ms(300); PORTC &= ~(1<<PC5); _delay_ms(300); PORTC |= (1<<PC5); _delay_ms(300); PORTC &= ~(1<<
-
Thread
Problem mit LED Schaltung, ich komme einfach nicht dahinter
Portb.2 = 1 Portb.3 = 1 Portb.4 = 1 Portb.5 = 1 Portb.6 = 1 Portb.7 = 1 Portc.0 = 1 Portc.1 = 1 Portc.2 = 1 Portc.3 = 1 Portc.4 = 1 Portc.5 = 1 Portc.6 = 1 Portc.7 = 1 Portd.0 = 1 Portd.6 = 1 Wait Warten Porta.0 = 0 Porta.1 =
Portb.2 = 0 Portb.3 = 0 Portb.4 = 0 Portb.5 = 0 Portb.6 = 0 Portb.7 = 0 Portc.0 = 0 Portc.1 = 0 Portc.2 = 0 Portc.3 = 0 Portc.4 = 0 Portc.5 = 0 Portc.6 = 0 Portc.7 = 0 Portd.0 = 0 Portd.6 = 0 Loop End
-
Thread
Array aus Unions - geht das?
sparen. so wie du sie verwendest, ist das verhalten undefiniert (auch wenn's in der realität oft gut geht).
] LOBYTE(x) = uart_getc(); HIBYTE(x) = uart_getc(); [/c] mir ist schon klar, dass das nicht geht; aber gibts dafuer ein sinnvolles define? [c] #define LOBYTE(x) ( ((un_i16)(x)).l ) [/c] geht naemlich nicht...
-
Thread
SHT11 Problem
#define DATA PORTC.1 #define SCK PORTC.0 char s_write_byte(unsigned char value) { unsigned char i,error=0; DDRC = 0b00000010; // DATA Ausgang Ja aber Clock steht nun auf Eingang, also falsch
Func4=In Func5=In Func6=In // State0=0 State1=P State2=T State3=T State4=T State5=T State6=T PORTC=0x02; DDRC=0x03; klappt es nicht. Da wo der Sensor was machen soll, passiert nichts. Solang der die Leitung nicht selber auf Low zieht geht gar nichts mehr.
-
Thread
ungewollte komische interne-Verspätung von dem Microcontroller ATMEGA32A
DDC2) | (0<<DDC1) | (1<<DDC0); // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=0 PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0); // Port D initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2
Gelbe Signal erreicht den LOW Pegel erst verzögert. Und die rote Linie (ich nehme an, das ist PORTC.0) folgt den Logik Pegeln prompt ohne sichtbare Verzögerung. In dem Moment wo das gelbe Signal den LOW Pegel erreicht, geht es auf HIGH. Und in dem Moment wo das gelbe Signal den HIGH Pegel erreicht
-
Thread
NOchmal ne Frage zur matrix-abfrage
pinb.5 = 1 then Portc.0 = 1 elseif pinb.6 = 1 then Portc.0 = 1 elseif pinb.7 = 1 then Portc.0 = 1 end if reset portb.1 set portb.2 if pinb.4=1 then Portc.0 = 1 elseif pinb.5 = 1 then Portc.0 = 1 elseif
pinb.7 = 1 then Portc.0 = 1 end if reset portb.3 Loop End [/pre] die funktion geht genausowenig :-( was mach ich nur falsch? angeschlossen ist alles. die LED ist auch nicht kaputt...
-
Thread
switch / case macht etwas was ich nicht verstehe
: ISR (TIMER2_OVF_vect) { pause=pause+1; switch (pause) { case 1: PORTC=0b11111110; break; case 3: PORTC=0b11111101; break; case 5: PORTC=0b11111011; break; usw usw usw bis:
Geht das nicht auch kürzer? [c] ISR (TIMER2_OVF_vect) { PORTC = ~(1 << (pause/2)); pause = (pause == 11) ? (0) : (pause + 1); } [/c] mfg mf PS: Oder so? [c] ISR (TIMER2_OVF_vect) {
-
Thread
DDS Sinus erzeugung
ldi r31,3 ser MODE ; make sweep restartable at any time ( fake OffMode ) sbi PORTC,3 ; READY cbi PORTC,3 ; place a strobe for trigger sbi PORTC,3 SL: ; cycl. ld r0,z ; 2 out PORTD,r0 ; 1 update BIT 0..7 sub r28,r24
DDRB,1 ; Bit 8 is off cbi PORTB,1 cbi DDRC,0 ; deglitch not needed cbi PORTC,0 cbi DDRC,1 ; addon not wanted cbi PORTC,1 clr r27 ser r30 ldi r31,3 lds r20,ADCH ; get initial ADC value sbi PORTC,3 ; READY AML:
-
Thread
Warnung beim verwenden jeweils jeden 7.Portpin als Ausgang
Kann ich das Problemm dann beheben, wenn ich diese Zeile umgehe!? Also anstatt: PORTC=~0xc0 Lieber so: PORTC=~(1<<PC6); PORTC=~(1<<PC7); Aber die ZEile bezieht sich ja nur auf den PORTC, aber er warnt ja auch den PA7 und PF7 an.
schrieb: > Kann ich das Problemm dann beheben, wenn ich diese Zeile umgehe!? > > Also anstatt: PORTC=~0xc0 > > Lieber so: PORTC=~(1<<PC6); > PORTC=~(1<<PC7); Nein. Das hilft dir nichts. PORTC = (unsigned char)~0xC0;
-
Thread
ATMEGA32 PORTC
Hallo, Bei ATMEGA32 warum kann ich beim PORTC verschiedene Ausgänge nicht ein und ausschalten? danke im voraus
JTAG in den Fuses deaktivieren, dann geht's auch.. Grüße Bernhard
-
Thread
bascom spinnt
Hallo, Ich habe folgendes problem, wenn ich zb den portc.0 als ausgang konfiguriere und dann eine schleife mache die do aussieht: Do Portc.0=1 Loop Musste die led an portc.0 doch leuchten oder versteh ich das falsch? Die led leuchtet nicht, ich hab
Hast Du den Ausgang so konfiguriert: Config Portc.0 = Output Hast Du die LED richtig angeschlossen?
-
Thread
Zuweisung eines arrays
{ PORTC &= ~(1 << (y-4)); } } } } for (int y = 0; y<=9; y++) { PORTC = 0b00110000; PORTB = 0b00000000
{ PORTC &= ~(1 << (y-4)); } } } } for (int x = 9; x>=0; x--) { PORTC = 0b00110000; PORTB = 0b00000000
-
Thread
Schieberegister mit Atmega88 unter Verwendung von AtmelStudio und mySmartUSBlite ansteuern
{ pin_ein(PORTC,PC4); //Schiebetakt aktivieren pin_aus(PORTC,PC4); //Schiebetakt reserten pin_aus(PORTC,PC1); //Seriellen Eingang auf dig. Null } pin_ein(PORTC,PC3); //Speichertakt
//pin_aus(PORTC,PC1); //Seriellen Eingang auf dig. Null //} pin_ein(PORTC,PC3); //Speichertakt aktivieren. pin_aus(PORTC,PC3); //speichern. pin_aus(PORTC,PC2); //Ausgänge
-
Thread
LED mit Microcontroller schalten
Wenn du 8 LEDs an PortC hast dann versuche mal folgendes: [c] while(1){ PORTC = 0xAA; //jede zweite an _delay(1000000); //delay for 1000000 cycles PORTC = 0x55; //und
Du hast ja schon mal den ganzen Port C auf Ausgang gestellt. Das ist schon mal gut. PortC ist aber nicht nur ein Bit sondern ein ganzes Byte. Du sagst jetzt ja mit PORTC =1 das gleiche wie PORTC = b00000001.
-
Thread
Probleme bei Programm (Assembler)
einschränkungen, dass würde dich jetzt aber verwirren wenn ich dir das erklären würde. Also folgendes geht NICHT!!! : out PORTC,0b01000000 oder sbi 0b01000000 (würde ja auch keinen sinn geben, woher soll irgendjmd., geschweige denn der assemblierer wissen, wo er das bitmuster hinsetzen soll?)
portc,6 rjmp loop L2: cbi Portc,6 rjmp loop
-
Thread
Was übersehe ich?
: End If : End If Return Stehlampe: If Portb.6 = 1 Then : If Y = 0 Then : Portc = &B00000000 : Portc.3 = 1 : Y = 1 : Waitms 500 : Portc = &B00000000 : End If : End If If Portb.6 = 0 Then : If Y = 1 Then : Portc = &B00000000 : Portc.2 = 1 : Y = 0 : Waitms 500 : Portc = &B00000000 : End If : End If Return Leuchtkugel: If Portb.7 = 1 Then : If Z = 0 Then : Portc = &B00000000 : Portc.5 = 1 : Z = 1 : Waitms 500 : Portc = &B00000000 : End If : End If If Portb.7 = 0 Then : If Z = 1 Then : Portc = &B00000000 : Portc.4 = 1 : Z = 0 : Waitms 500 : Portc = &B00000000
-
Thread
display geht an PortD und PortA, aber nicht an PortC
Hallo Leute, also ich hab hier ein Problem, dass ich beim besten Willen nicht verstehe. Ich hab ein Display wie im Tutorial angeschlossen.(http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD) Mit dem Beispielcode und den LCD-Routinen funktioniert das ganze einwandfrei. Wenn ich überall PORTD und DDRD zu PORTA und DDRA umändere und das LCD entsprechend anschließe funktioniert es auch. Wenn ich jedoch alles nach Port C transferiere, dann kommen nur die schwarzen Kästchen im LCD. Könnte mir wer sagen, an was das liegen könnte? Danke schon mal, michl
-
Thread
2 Bytes (int) struct korrekt so?
SentVector.bit.SV0 ) PORTB |= ( 1 << PB5 ); else PORTB &= ~ ( 1 << PB5 ); if ( SentVector.bit.SV0 ) PORTC |= ( 1 << PC0 ); else PORTC &= ~ ( 1 << PC0 ); if ( SentVector.bit.SV0 ) PORTC |= ( 1 << PC1 ); else PORTC &= ~ ( 1 << PC1 ); if ( SentVector.bit.SV0 ) PORTC |= ( 1 << PC2 ); else PORTC &= ~ ( 1 << PC2 ); if ( SentVector.bit.SV0 ) PORTC |= ( 1 << PC3 ); else PORTC &= ~ ( 1 << PC3 ); if ( SentVector.bit.SV0 ) PORTC |= ( 1 << PC4 ); else PORTC &= ~ ( 1 << PC4 );
-
Thread
AVR SDK / API gesucht
PORTC2..5 wird von JTAG benutzt - ist das abgeschaltet?
S. Landolt schrieb im Beitrag #6979465: > PORTC2..5 wird von JTAG benutzt - ist das abgeschaltet? Nein, noch nicht. Danke für den Tipp, ich schaue mal nach, wie das geht
-
Thread
Drehrichtungsumkehr.Microcontroller Programm funzt nicht richtig.
einen Schritt vorwärts tun soll // na dann machen wir den mal if( StepDir == TO_RIGHT ) PORTC |= ( 1 << PC2 ); else PORTC |= ( 1 << PC3 ); _delay_ms( 8 ); PORTC &= ~( (1 << PC3) | (1 << PC2) ); } int main( void ) { DDRC = 0xFF; // PORTC als Ausgang for
_______________ void MakeStep( uint8_t MotorDir ) { if( MotorDir == TO_RIGHT ) { PORTC |= ( 1 << PC1 ); _delay_ms(60); PORTC &=~ (1 << PC1); _delay_ms(60); } else { PORTC |= ( 1 << PC2 ); _delay_ms(60); PORTC &=~ (1<<PC2); _delay_ms
-
Thread
ATMega16 Unterprogramm anspringen geht nicht mehr???
out DDRC,r16 ;PORTA auf Ausgang out DDRB,r16 ;PORTB auf Ausgang out DDRB,r16 ;PORTC auf Ausgang ;------------------------------------------------------------------------- start: out PORTC,r20 ldi r16,0x01 out PORTB,r16 rcall loop ldi r16,0x02
Am besten, der Lutz brennt den Kram mal und simuliert nicht, dann sieht er am ehesten, ob´s geht oder nicht ;-)
-
Thread
Interrupts Programm wird unterbrochen warum?
<util/delay.h> #include <avr/interrupt.h> void herunterfahren(void) { PORTA=0xF0; PORTC=0x03; //PIN C2 auf 0 setzen für 12V int y; for(y=0;y<1000;y++) { _delay_ms(1); // Wartezeit starten bis 12V abgeschaltet } PORTC=0x01; //Pin C1 auf 0 setzen für
Okay mein COde ist nicht der übersichtlichste und nicht der schönste und das mit dem PORTC=0x03 hab ich nur gemacht damit damit Pin C0 und Pin C1 auf 1 sind mittlerweile hab ich gelernt, dass es eleganter geht indem man eines einfach nur an die gewünschten stellen schiebt. Ich versuche ja
-
Thread
Interrupt Frage ATMEGA8535
0]; _delay_ms(1); PORTD = zaehlen[ZehnerM]; PORTC = driver[1]; _delay_ms(1); PORTD = zaehlen[EinerS]; PORTC = driver[2]; _delay_ms(1); PORTD = zaehlen[ZehnerS]; PORTC = driver[3]; _delay_ms(1); } return 0;
TIMSK |= (1<<OCIE1A); sei(); while (1) { PORTD = zaehlen[EinerM]; PORTC = driver[0]; _delay_us(100); PORTD = zaehlen[ZehnerM]; PORTC = driver[1]; _delay_us(100); PORTD = zaehlen[EinerS]; PORTC = driver[2]; _delay_us(100); PORTD =
-
Thread
8Bit Datenleitung auf 2 Ports splitten, für LCD, bidirektional
Hi >Gibt es da anderen weg, weiß es nicht warum das so nicht geht... Was geht nicht? JTAG abgeschaltet? MfG Spess
Ungetestet: [c]// schreiben: PORTA = (PORTA & ~(3 << 6)) | (bitsVar << 6); PORTC = (PORTC & 3) | (bitsVar & ~3); // lesen: return (PORTA >> 6) | (PORTC & ~3);[/c]
-
Thread
Pollin Controller Port Ausgang auf "high" schalten
auf 0 setzen //PORTC |= (1<<PC0);[/c] Nöö, die Anweisung ist ja auskommentiert ;-)
[c]PORTC |= (1<<PC0); // einschalten PORTC &= ~(1<<PC0); // ausschalten[/c]
-
Thread
atmega8 UART empfangen
while (1) { uint8_t c; c = uart_getc(); // hier etwas mit c machen z.B. auf PORTC ausgeben DDRC = 0xFF; // PORTC Ausgang PORTC = c; } return 0; // never reached }[/c] Leider weiss ich nicht, wo der Fehler ist. PORTC ist dauerhaft auf 0x00. Ich arbeite mit
JTAG nicht deaktiviert? Das ist standardmäßig aktiviert und auf PORTC.
-
Thread
Byte auf verteilten Ausgängen ordnen
); if (byte & 0x08) PORTD |= (1 << PD3); else PORTD &= ~(1 << PD3); if (byte & 0x10) PORTC |= (1 << PC3); else PORTC &= ~(1 << PC3); if (byte & 0x20) PORTC |= (1 << PC2); else PORTC &= ~(1 << PC2); if (byte & 0x40) PORTC |= (1 << PC1); else PORTC &= ~(1 << PC1); if (byte & 0x80) PORTC |= (1 << PC0); else PORTC &= ~(1 << PC0); } int main( void ) { while( 1 ) portout2( PINB ); return 0; } [/c] Trotzdem würde ich eher die 1. Variante nehmen, da die 2. bei
-
Thread
Atmega328p wacht nicht auf, wo steckt der Fehler?
{ set_sleep_mode(SLEEP_MODE_PWR_SAVE); sleep_mode(); PORTC |= (1<<PC4); _delay_ms(1); while(!(PINC &= (1<<PINC3))) { PORTC |= (1<<PC5); } PORTC &= ~(1<<PC5); PORTC &= ~(1<<PC4); while(flag==1)
Schlafmodus gehen. Warum dauerhaft die Ports setzen? [c] while(!(PINC &= (1<<PINC3))) { PORTC |= (1<<PC5); } PORTC &= ~(1<<PC5); PORTC &= ~(1<<PC4); while(flag==1) { PORTC|= (1<<PC5); }[/c]
-
Thread
Timer 1 kann Portc nicht mehr verwenden
ich den Timer1, dann kann ich auch den Portc toggeln. Also µC benutze ich den Atmega16
drin und sende ziemlich viele Daten, nehme ich die Anzahl der Strings, die ich sende zurück, dann geht mein PORTC wieder. Kann das sein, dass der Überlastet ist oder sowas?
-
Thread
Mega32P + max232 funktioniert nicht
'UV-Effect-LED einschalten 'Peltier Elemente 'Waitms 10 'Portc.3 = 1 'Portc.4 = 1 'Waitms 250 'Portc.3 = 0 'Portc.4 = 0 'Goto Anfang Loop ' *****************************************************************************
und 6 auf der PC-Seite verbunden. Geändert hat sich dabei aber nichts. Man sehen wie es weiter geht VG, Heiko
-
Thread
Arduino Webserver mit Diagramm
\n" //Port Schalten und Status %PORTC1 bedeutet PORTC PIN1 "<p align=\"left\">\r\n" "<input type=\"checkbox\" name=\"OUT\" value=\"B\" %PORTC1>\r\n" " MOC(PC1)\r\n" "</p>\r\n" //Port Schalten und Status %PORTC6 bedeutet PORTC PIN6 "<p align=\"left\">\r\n" "<input type=\"checkbox\" name=\"OUT\" value=\"G\" %PORTC6>\r\n" //"Port C Pin 6\r\n" " PCres (PC6)\r\n
-
Thread
DS18S20, Atmega8, AVR Studio
LED unzwar bei 1000ms Einschaltverzögerung (siehe code) blinkt die Led 108 mal in 30 Sekunden. PORTC &=~(1<<PC2); // Gelbe LED aus _delay_ms (1000); // 1sec auslassen PORTC |=(1<<PC2); // Gelbe LED ein Wie kann ich das so einstellen das es auch wirklich 30 mal blinkt in
inttypes.h> #define F_CPU 3686400l void main (void) { DDRC = 0xFF; //PortB = Ausgänge PORTC = 0x00; char i=0; lcd_init(); while(1) { PORTC &=~(1<<PC2); // Gelbe LED aus _delay_ms (500); // 1sec auslassen PORTC |=(1<<PC2); // Gelbe LED ein _delay_ms
-
Thread
Bei meinem Atmega88 verhält sich PORTB anders als PORTC
anwählen cbi PORTD, 6 ; Anzeige 3 anwählen cbi PORTD, 7 ; Anzeige 4 anwählen cbi PORTC, 0 ; Segment a anwählen sbi PORTC, 1 ; Segment b anwählen cbi PORTC, 2 ; Segment c anwählen sbi PORTC, 3 ; Segment d anwählen cbi PORTC, 4 ; Segment e anwählen sbi PORTC
PORTC, 4 ; Segment e anwählen sbi PORTC, 5 ; Segment f anwählen ; cbi PORTC, 6 ; Segment g anwählen ; sbi PORTC, 7 ; Segment . anwählen
-
Thread
I2C mit Bascom Fehlersuche bei LTC2945
40 $swstack = 16 $framesize = 32 $baud = 9600 Config Lcd = 20 * 2 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2 Config Sda = Porta.6 Config Scl = Porta.7 Const Basewrite = &HCE Const Baseread = &HCF Dim Vin_msb As Byte ,
framesize = 32 $baud = 9600 '$lib "i2c_twi.lbx" Config Lcd = 20 * 2 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2 Config Sda = Portd.1 Config Scl = Portd.0 Const Basewrite = &HCE Const Baseread = &HCF
-
Thread
AVR reagiert nicht
leo schrieb im Beitrag #5853505: > DDRC &= ~(1<<PORTC2) | (1<<PORTC3) | (1<<PORTC4) | (1<<PORTC5); Unabhängig vom Flasherproblem: Soll wirklich nur PC2 ein Eingang und PC3 bis PC5 Ausgänge sein ?
Ralph S. schrieb im Beitrag #5853649: >> DDRC &= ~(1<<PORTC2) | (1<<PORTC3) | (1<<PORTC4) | (1<<PORTC5); Ich verbessere mich: PC2 als einziger Pin ist Eingang, alle anderen des PortC sind nach dieser Angabe Ausgänge ! ~(1 << PORTC2) => ~(0000.0010
-
Thread
Sinus mit DDS erstellt - geht nicht über 400 hz
Ich habe die Werte damals über PWM + Filter ausgegeben, klappte super! Aber R2R geht ebensogut! Knut
die nicht hat, dann das 10k Netzwerk kaufen, denke ich. Oder Widerstände ausmessen, was ja immer geht.
-
Thread
LCD Initialisierung
ser r16 out DDRA, r16 ;PortA als Ausgang out DDRC, r16 ;PortC als Ausgang CBI PORTC, 1 ;R/W=Low, Schreiben aktiv CBI PORTC, 2 ;RS=Low, Commandos werden gesendet OUT PORTA, temp1 Rcall lcd_enable nop Rcall lcd_delay50us pop r17 ;Register wieder
>lcd_enable: >... >sbi PORTC, 0 ;Enable-Bit setzen >... >cbi PORTC, 0 ;Enable-Bit rücksetzen was soll das?
-
Thread
Reset eines DS18S20 geht nicht
Diesen relevanten Teil hab ich völlig vergessen :P [c]#define ONE_WIRE_PORT PORTC #define ONE_WIRE_DDR DDRC #define ONE_WIRE_PIN PINC #define ONE_WIRE_BIT PC1 #define ONE_WIRE_INPUT_MODE() ONE_WIRE_DDR &= ~(1<<ONE_WIRE_BIT) #define ONE_WIRE_OUTPUT_MODE() ONE_WIRE_DDR |= (
Ja! ... F_CPU war zwar angegeben, das drang wohl aber nicht bis nach 1wire.c/h durch.. jedenfalls geht es jetzt.. Danke, das hier hat mir geholfen wieder mit einem klareren Kopf an die Sache zu gehen.
-
Thread
Initialisierung HD44780
LCD_CMD_CURSOR_SET 0x80 #define LCD_E_INIT DDRC |= 1<<PC0 #define LCD_E_SET PORTC |= 1<<PC0 #define LCD_E_CLR PORTC &= ~(1<<PC0) #define LCD_RS_INIT DDRC |= 1<<PC1 #define LCD_RS_SET PORTC |= 1<<PC1 #define LCD_RS_CLR PORTC &= ~(1<<PC1)
kann zwar noch nicht Asm in AVR aber sowie das Aussieht kann ich mir nur schwer vorstellen, daß das geht. #define LCD_E_INIT DDRC |= 1<<PC0 #define LCD_E_SET PORTC |= 1<<PC0 #define LCD_E_CLR PORTC &= ~(1<<PC0) Warum um Himmelswillen schiebst Du die Ports? Warum für
-
Thread
STK500 Sockets fallen nacheinander aus
PORTC &=~ (1<<(j+2)); delay_us(1); PORTC &=~ (1<<(j+3)); } break; case 1: { PORTC = 255; PORTC &=~ (1<<j); delay_us(200); PORTC &=~ (1<<j+1); delay_us(15); PORTC &=~ (1<<abs(j-1)); PORTC &=~ (1<<abs(j-2)); delay_us(1); PORTC &=~ (1<<abs(j