-
Thread
drehzahlmesser
schrieb im Beitrag #3894891: > alle ports gehen > auch hier nicht das sind die jtag-Pins auf PortC ->Fusebits
Schön wenns jetzt geht. Zu meiner obigen Interrupt-Routine noch der Vollständigkeit halber, falls das mal jemand lesen sollte. ISR( TIMER1_CAPT_vect ) { Time = ICR1; TCNT1 = 0; flag=1; //wird im main
-
Thread
Wie kann man Atmega8, L298 und einen Schrittmotor verbinden?
starts new load not by 0 } void cwC(uint16_t d_var) // move cw, pins 2-5, in 1/4 steps { PORTC = 0b00010100; long_delay_us(d_var); PORTC = 0b00011000; long_delay_us(d_var); PORTC = 0b00101000; long_delay_us(d_var); PORTC = 0b00100100; long_delay_us(d_var); } // main function int main
brauche... Ich will auch nicht, dass der Motor nach ein paar Minuten nach dem Inbetriebnahme kaputt geht. Deswegen L6207.
-
Thread
C++ auf einem MC, wie geht das?
. Nur hier geht es nicht um AS sondern um C++.
nichts passieren. Häää? Und dann werden die Member der abgeleiteten Klassen verwendet? Falls das geht, würde ich sehr gern lernen, wie das geht.
-
Thread
AVR241 mit Code für anderen Compiler
C zu tun. Auch in Assembler macht man keinen Spring aus einer ISR in die Hauptschleife, sondern geht den normalen vorgesehenen Weg. Alleine schon die Idee eines derartigen Sprunges zeigt ... ja, was ... das dir so manches nicht wirklich klar ist. Assembler hin, C her
nächsten Befehl wird er dann sicher auf 0 gestellt. Eric B. schrieb: > Probier mal so: Das geht leider nicht, da ich nicht nur case0 habe sondern weiter bis case7. Die habe ich nur zum Testen weggelassen.
-
Thread
Atmega8 isp programieren
passiert dem Reset-Pin gar nichts. Nur wenn du per RSTDISBL-Fuse den Reset-Pin zum IO umgewandelt hast, geht die Programmierung per ISP nicht mehr. Rückgängig machen lässt sich das nur per HV-Programierung, z.B. mit einem STK500. Oliver
delay_1 wird 0 ldi delay_2, 4 ; delay_1 wird 4, delay_1 > 0 wählen out PORTC,temp ; PORTB, PIN0 wird gesetzt com temp ; Einerkomplement bilden ori temp,LED_0 ; temp wird temp ODER LED_0 rcall SUB_DELAY ; Verzögerung
-
Thread
Atmega1284p Power-Down und WakeUp via UART
auswirft, die kann ich lesen soweit so gut. Nun möchte ich das der Atmel solange in Power-Down geht, bis auf dem UART Daten vom Rauchmelder empfangen werden. Der Atmel wird mit einem Quarz 10 Mhz betrieben, vom RX habe ich eine Leitung an PCINT0 (PA0) angeklemmt und verwende folgenden Code:
Power-Down Modus kriegt der Atmel das "ACK" vom Melder zurück, frägt die Seriennummer des Melders an geht (Geht auch über den UART raus) direkt danach in den Power-Down und kriegt (logisch) die erste Seriennummer übertragung nach ca 0,2 - 0,3 Sekunden nicht mehr mit bzw die Hochfahrzeit wohl ist zu lang
-
Thread
Hyperterminal lääst LED's springen
Guten Tag, ich möchte gern vom HyperTerminal aus meine LED's am PORTC durch Eingaben wie "0b11101100" ansteuern. Jedoch werden die eingegebenen Muster nicht korrekt übertragen und schon allein durch Tippen der Leertaste springen die LED's wie wild herum. Das man solche Sachen irgendwie Filtern muss ist mir bewusst, nur worum es hier eigentlich geht ist, dass die Muster nich korrekt wiedergegeben werden. [c] #include <avr/io.h> #include <stdlib.h> #define F_CPU 16000000UL // Systemtakt in Hz - Definition als unsigned long beachten #define
-
Thread
Problem bei Einlesen der Analogwerte
Port C als Ausgang setzen while( 1 ) { if( PINA & ( 1 << PA0 ) ) PORTC |= 1<<PC0; else PORTC &= ~(1<<PC0); if( PINA & ( 1 << PA1 ) ) PORTC |= 1<<PC1; else PORTC &= ~(1<<PC1); // Ansonsten setze PC0 LOW } }
PORTC &= ~(1<<PC1); [/c]
-
Thread
myAVR mk2 mit nur einem Taster bedienen - assembler
PORTB,r18 in r19,PINC sbrs r19,5 rjmp Taster rjmp mainloop Taster: sbi PORTC,5 Taster1: ldi r18,0b01011011 out PORTB,r18 in r20,PINC sbrs r20,5 rjmp Auswahl rjmp Taster1 Auswahl: ldi r18,0b00111111 ... Das problem ist derzeit
ldi r16,0x00 ldi r17,0xFF out DDRB,r17 out DDRD,r17 out DDRC,r16 out PORTC,r17 mainloop: ldi r18,0b00000110 out PORTB,r18 in r19,PINC sbrs r19,5 rjmp Taster rjmp mainloop Taster: cbi PORTC,5 Taster1: ldi r18,0b01011011
-
Thread
Kleine Bitmanipulationsfrage
scheint > aber so nicht zu funktionieren... Wie sollte es auch. Mit "|" ein Bit zu löschen, geht nun mal nicht.
ausdrücklich SBI zum "Single Bit toggle" genannt wird. Wenn die bei Atmel merken, daß das keinesfalls geht, Eden sie traurig sein.
-
Thread
UART AT90CAN128 Einstieg
Zum einen kann der AT90CAN128 doch nur 16MHz und wenn ich richtig sehe wären es bei Dir 32,7MHz. Geht also schon mal vom Prozessor nicht. Welchen Quarz hast Du denn eingebaut ? F_CPU muss dem tatsächlichen Takt entsprechen. Pepe.
{ uint8_t c; c = uart_getc(); DDRC = 0xFF; PORTC = c; } else { } } } [/c] Die Kommunikation scheint auch zu funktionieren, allerdings reagiert der Controller auf jede mögliche Eingabe. So springen
-
Thread
AVR: unsigned 24 bit auf 3 Ports verteilen
// ok, OUT PORTA,Rn PORTB = ((wert >> 8) & 0xff); // 4 Register werden sinnlos umkopiert PORTC = ((wert >> 16) & 0xff); // ok, OUT PORTC, Rn+2 } machmal(0x00112233UL); Der gcc läuft mit -o3 Wie gehts besser ? Union etc. geht nicht, weil ich alles in Registern behalten will. Gruß
sinnlos umkopiert d4: 82 e2 ldi r24, 0x22 ; 34 d6: 85 b9 out 0x05, r24 ; 5 PORTC = ((wert >> 16) & 0xff); // ok, OUT PORTC, Rn+2 d8: 81 e1 ldi r24, 0x11 ; 17 da: 88 b9 out 0x08, r24 ; 8 } [/c]
-
Thread
LED als Sensor
Alternativ kann du einfach die LED an einen der ADC Ports hängen und die Spannung messen. Das geht für eine Hell-Dunkel Erkennung recht gut. Und zum Leuchten schaltest du einfach den ADC ab, den Port auf Ausgang und los geht es (Vorwiderstand nicht vergessen, der stört bei der Spannungsmessung nicht
Kann mir einer den Fehler bei diesem Programm sagen? Auf PORTC befinden sich übrigens LEDs mit denen ich anzeigen will, dass sich überhaupt etwas ändert, wenn sich die Helligkeit bei der "mess LED" verändert.
-
Thread
16X1 LCD zeigt nur 8 Zeichen
ist. Ich möchte über den 8Bit-Mode ein LDC Display ansteuern Gelesen habe ich schon wie es geht, es will aber trotzdem nicht funktionieren. Hier der c-Code [c] /* * LCD_Anzeige.c * * Created: 09.11.2014 23:07:36 * Author: Admin */ #define F_CPU 4000000UL #include <avr
string); void LCD_blink(); void LCD_scroll(unsigned char direction); #define LCD_DATA_PORT PORTC #define LCD_DATA_DDR DDRC #define LCD_DATA_PIN PINC #define LCD_CNTRL_PORT PORTD #define LCD_CNTRL_DDR DDRD #define LCD_CNTRL_PIN PIND #define LCD_RS_PIN 2 #define LCD_RW_PIN
-
Thread
Schrittmotorsteuerung für primitive Astro-Nachführung
unter der Bildauflösung liegen. Vibrationen sind dann nicht sichtbar. Ein schneller Rücklauf geht dann aber nicht mehr, dafür müsste der Reibradantrieb kurz ausgekuppelt werden. Gruß, Martin Cibulski
Versorgungsspannung). Ohne Rampe wird sich der Motor nicht bewegen und nur vor sich hinsummen: ohne Rampe geht es nicht!
-
Thread
RTTTL Player
#include <avr/sleep.h> // Lautsprecherport #define SPEAKER_DDR DDRC #define SPEAKER_PORT PORTC #define SPEAKER PC7 // Taster #define TASTER_DDR DDRC #define TASTER_PORT PORTC #define TASTER_PIN PC2 #define TASTER_INT PCINT18 // Vorteiler fuer Timer0 (in ctc_on() TCCR0B entsprechend
mit der Zusatzbezeichnung OC1B hängt. In "doc2467.pdf" (von Atmel Seite downloadbar) ab Seite 82 geht's los.. oder etwas auf deutsch: [[http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Die_Timer_und_Z%C3%A4hler_des_AVR]] und das mit den Titeladressarray geht bei mir so (im Studio 6)
-
Thread
ATtiny8 und GIMSK
Hallo Dieter bin da von ausgegangen, wenn kein PCIE geht auch kein Interrupt geht. Das hatte ich dabei nicht berücksichtigt bzw. bin noch nicht so weit gekommen. Freue mich mehr, wenn das obere von mir stimmt. Da ja kein Wiederspruch kommt, nehme ich an,
Achim Seeger schrieb im Beitrag #3872826: > bin da von ausgegangen, wenn kein PCIE geht auch kein Interrupt geht. Wie kommst Du darauf, dass es für PC7 kein PCIE.. gibt? Es ist der gleiche wie für PC2. Der Interrupt wird immer für eine Gruppe von Pins aktiviert, welche Du im Einzelnen
-
Thread
Ausgangsbits werden nicht gelöscht
) | (1<<PC5) | (1<<PC6) | (1<<PC7) ); // Datenrichtungsregister für PORT C setzen (Eingänge) PORTC |= (1<<PC0) | (1<<PC1) | (1<<PC2) | (1<<PC3) | (1<<PC4) | (1<<PC5) | (1<<PC6) | (1<<PC7); // Datenregister für PORT C setzen (Pull-Up-Widerstände aktivieren) DDRB &= ~( (1<<PB0) | (1<<PB1)
Neuer Tag Neues Glück, habe gerade das Programm nochmal probiert und siehe da es geht auf einmal. Trotzdem danke für die Mühe.
-
Thread
Attiny2313 mit Pollin LCD-Modul C0802-04
Also bei mir geht es mit folgendem Code wunderbar: [c] struct bits { u8 b0:1; u8 b1:1; u8 b2:1; u8 b3:1; u8 b4:1; u8 b5:1; u8 b6:1; u8 b7:1; } __attribute__((__packed__)); #define SBIT
#define LCD_E0 SBIT( PORTD, 4 ) #define LCD_DDR_E0 SBIT( DDRD, 4 ) #define LCD_on() PORTC |= (1<<PC4) #define LCD_off() PORTC &= ~(1<<PC4) static void lcd_nibble( u8 d ) { LCD_D4 = 0; if( d & 1<<4 ) LCD_D4 = 1; LCD_D5 = 0; if( d & 1<<5 ) LCD_D5 = 1; LCD_D6 = 0; if( d &
-
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
Timer1 Atmega8A?
; [/c] Zufrieden ? Und auch mit 0x80 wird es funktionieren: [c] if ((PORTC != 0) && (PORTC < 0x80)) PORTC <<= 1; else PORTC =1; [/c]
im Beitrag #3864131: > Zufrieden ? Nein. Marc Vesely schrieb im Beitrag #3864131: > if ((PORTC != 0) && (PORTC < 0x40)) PORTC <<= 1; else PORTC =1; PC6 ist Reset. Da läuft er zwar rüber aber die Anzeige bleibt auch einmal dunkel. [c] if (PORTC < 0x20) PORTC <<= 1; else PORTC =1; [/c]
-
Thread
Bit auf Variable setzen?
Um welche Sprache geht es eigentlich? C? C++?
schnellerem Code: [c] $cat test.c #include <avr/io.h> #include <stdbool.h> void f1(bool x) { PORTC= (PORTC & ~(1<<PC0)) | (x<<PC0); } void f2(bool x) { if (x) PORTC= PORTC | (1<<PC0); else PORTC= PORTC & ~(1<<PC0); } [/c] Compilieren mit [code]avr-gcc -c -mmcu=atmega8 -save-temps
-
Thread
Allgemeines Toggle LED Problem
Woran liegt das? Beispiel Programm:[c] if(adcval < 140) // Kleiner 684mV { PORTC |= (1<<PC0); PORTC &= ~(1<<PC1); PORTC &= ~(1<<PC2); } [/c] funktioniert natürlich, aber [c] if(adcval < 140) // Kleiner 684mV { PORTC
(1<< PD5); if(counter%7==6) PORTD ^= (1<< PD6); [/c] funktioniert nicht einwandfrei. Mal geht direkt eine LED An und Aus anstelle nur An oder wenn sie ausgehen müsste, verliert sie nur die halbe Ausgangsspannung. Die LEDs haben jeweils 1k Ohm als Vorwiderstand. [c] DDRB = 0xFF; // Blaue
-
Thread
Timer1 LED Uhr test mit modulo
holger schrieb im Beitrag #3859001: > Natürlich geht das. Frag dich mal ob du wirklich jeden > main() Zyklus deine Ports xoren willst? Oder vieleicht > nur wenn counter sich ändert? So funktioniert aktuell dann gar nichts. Ich denke mal, dass sich
> switch(Counter % 7) Beim Überlauf von counter geht wieder alles durcheinander;) Schon mal drüber nachgedacht?
-
Thread
Globale Variablen im ISR
nicht in einer Funktion ist, > ist doch grundsätzlich als global zu sehen, oder nicht? Darum gehts überhaupt nicht. Es geht um die Unterscheidung zwischen Definition und Deklaration. Eine Definition ist etwas, bei dem vom Compiler tatsächlich Speicherplatz reserviert wird. Das sind Definitionen
include <avr/interrupt.h> #include "uart.h" int main() { uart_init(); DDRC = 0xFF; // PORTC Ausgang sei(); while (1) { PORTC = uart_string[0]; _delay_ms(5000); PORTC = uart_string[1]; _delay_ms(5000); PORTC = 0xFF; _delay_ms(50); PORTC
-
Thread
AVR-ASM Knobelei : Bitmanipulation am LCD im 4-Bit Mode
Da es anscheinend um eine praktische Frage geht, anbei etwas Ausführlicheres.
sbrc r24, 7 > 46: c5 9a sbi 0x18, 5 ; 24 Nur dass Databit 7 auf Portbit 3 geht.
-
Thread
DRV8811 Richtungswechsel
MOT_DIR PC3 #define MOT_STEP PC4 [/c] [c] int main(void) { DDRC = 0xff; PORTC= 0b00000000; //PORTC &= ~(1<<MOT_ENABLE); // Enable //PORTC &= ~(1<<MOT_SM0); // SM0 //PORTC &= ~(1<<MOT_SM1); // SM1 //PORTC &= ~(1<<MOT_DIR); while(1) { PORTC |
=0; j<=100; j++) { long_delay(1); PORTC |= (1<<MOT_STEP); long_delay(150); PORTC &= ~(1<<MOT_STEP); } } [/c]
-
Thread
ARM, Philosophie und Programmierparadigmen
ist. Die Hardware kann 32- und 16-Bit Zugriffe, also muss GPIOC_RESET 16 Bit breit sein und schon geht es.
@Moby Kannst du nicht woanders trollen? Dein Gesülze geht uns hier auf die E...!!!
-
Thread
SPI zwischen zwei ATMEGA8A mit SPI-Interrupt
den Oszi hab ich MOSI, PB1/SS sowie SCK gemessen und die Signale machen genau das was erwartet. (SS geht low für den Zeitraum der Übertragung, SCK Takted und MOSI sendet). Ich weis nicht was ich noch Versuchen kann bzw. Wo mein Fehler liegt und ich hoffe das mir jemand von euch helfen kann? Zum Aufbau
ATMEGA8A, mit 8MHZ interner Oszillator getaktet, einer (der Slave) in STK500 der auf die Leds über PORTC angeschlossen ist. Der Master ist an einem Experimentier Board und mit kable verbunden. (ich habe einen skizzenhaften Schaltplan angehängt an den die SPI Verbindungen ausgezeichnet sind) Besten
-
Thread
Sonderbares Timer-Verhalten
Nichts tun } } ISR(PCINT3_vect) { //Timer auf Anfang, Pins auf HIGH TCNT1 = 0; PORTC |= (1<<PC6); } ISR(TIMER1_COMPA_vect) { //Pins auf LOW PORTC &=~ (1<<PC6); } [/c] Wenn ich dieses Programm ausführe, gibt es kein Problem, der Pin ist immer schön für 600µs auf HIGH. Wenn ich allerdings am Ende der Timer-ISR noch einige 'NOPs' hinzufüge geht das ganze plötzlich nicht mehr: [c] ISR(TIMER1_COMPA_vect) { uint16_t i; PORTC &=~ ((1<<PC6) | (1<<PC4) | (1<<PC5)); for(i = 0; i<10000; i++) { asm volatile ("NOP
-
Thread
AVR Scheduler von Peter Danneger will nicht
Nimm dieser Makros [c] #define MotorspeedON PORTC |= (1<<PINC1) #define MotorspeedOFF PORTC &= ~(1<<PINC1) #define MotorLinksON PORTC |= (1<<PINC2) #define MotorLinksOFF PORTC &= ~(1<<PINC2) #define MotorRechtsON PORTC |= (1<<PINC3) #define MotorRechtsOFF PORTC &= ~(1<<PINC3) #define IniRearSlow PIND & ( 1 << PIND5 ) [/c] aus schedule.h raus und in main.c rein. erstens haben die dort nichts verloren (im schedule.h geht es um den Scheduler
-
Thread
I2C Problem mit DS1307 Modul
es dann klappt dann kann ich stundenlang mit rtc_read() darauf zugreifen. Aber wehe die Spannung geht weg oder ich provoziere per ISP nen Reset, dann darf ich wieder 7x manuell Reset drücken bis die beiden sich wieder verstehen. Aufgebaut habe ich momentan einen ATmega8 (8MHz intern) und das RTC
int main(void) { DDRC = 0x30; // PC0-3 als Eingang, PC4-5 (I2C) als Ausgang PORTC = 0x3F; // Pullups f. Eingänge und I2C AN DDRB = 0xFF; // PB 0-7 als Ausgang PORTB = 0x00; // Alle LEDs aus i2c_init(); rtc_init(); PORTB |= (1<<PB1)
-
Thread
Maschinentakt auf Grossanzeige
Spannungsteiler o.Ä. den Geber an den Audioeingang anschließen. Dann ne App PROGRAMMIEREN... ach mist.. geht ja nicht :-)
// Interrupts global freischalten for(digit=0;;digit=(digit+1)%5) { PORTC=0; PORTB=1<<digit; PORTC=segment[(zahl/pow(10,digit))%10]; _delay_ms(10); } } Allzu aufwändig ist das also nicht.
-
Thread
nRF24L01+ geht nicht
Hallo, ich habe eben auf Steckbrett die Schaltung gemäß Tutorial (http://www.mikrocontroller.net/articles/NRF24L01_Tutorial) aufgebaut. Leider bringe ich einfach keine Übertragung zustande... Um die Hardware zu prüfen, habe ich auf Sender und Empfänger-Seite jeweils den Kanal ausgelesen. Funktionierte bei beiden ohne Probleme. Nun möchte ich jedoch testweise ein Byte übertragen und mithilfe von LEDs ausgeben. Diese bleiben jedoch immer dunkel... Hier mal der Code für den Empfänger - bin ich nur blind? [c] /* * nRF24L01_Tutorial_RX.c * * Created: 06.01.2012 22:51:57 * Author: Ernst
-
Thread
16x2 LCD Langsamer Displayaufbau
Perfekt, das funktioniert sogar mit führenden Nullen: >sprintf(buffer, "%02d", ADCvalue); Das geht auch mit führenden Leerzeichen sprintf(buffer, "% 2d", ADCvalue);
nimmt mir die Rechung incl der NOP-Schleife ab und macht, was es verspricht, wenn man weiß, wie es geht. Siehe oben.
-
Thread
Geisterbilder auf einer 8 x 8 Matrix
PORTB = VRAM[2]; PORTC |= (1<<PC5); _delay_ms(2); PORTC &= ~(1<<PC5); PORTB = 0x00; PORTB = VRAM[3]; PORTC |= (1<<PC4); _delay_ms(2); PORTC &= ~(1<<PC4); PORTB = 0x00;
case 1: PORTC |= (1<<PC6); break; case 2: PORTC |= (1<<PC5); break; case 3: PORTC |= (1<<PC4); break; case 4: PORTC |= (1<<PC3); break; case 5: PORTC |= (1<<PC2); break
-
Thread
KS0108_Library
t i=0; i<150000000; i++); Schon mal die Ausgaben (Warnungen) deines Compilers gelesen? uint16 geht nur von 0 ... 65535, das macht deine Pause dann schon recht kurz. Sascha
Hi >Benutze ein Atmega 1284p. Da PortC für den Datenbus verwendetet wird stellt sich die Frage, ob das JTEG-Interface von PortC abgeschaltet ist. MfG Spess
-
Thread
AVR ATmega Probleme mit Timer1
); // Timer/Counter1 Output Compare Match A Interrupt Enable } ISR (TIMER1_COMPA_vect) { PORTC ^= ( 1 << PC5 ) } [/c]
PORTC auf Ausgang gestellt?
-
Thread
ATMega 8, assembler | lcd und led funktionieren zusammen nicht
Joachim Jakob schrieb im Beitrag #3802142: > und sobald ich die taste loslasse geht die led wieder aus Wie ?
oh, nein also muss ich jetzt noch ldi r16,0xff out portc, r16 schreiben?
-
Thread
Arduino - Pin Directions - digital, analog oder beides?
tiefe Verständnis dieses Zusammenhanges über den Horizont des normalen Arduinonutzers weit hinaus geht, ist auch klar. Also lass gut sein. Für Arduinonutzer ist das analog. mfg.
irgenwas macht, was sie nicht soll muss ich mal erkunden, wenn ich ein paar Bier drin habe, dann geht das am besten. >>Ähm gerade gelesen... versuchst du wirklich auf Pins etwas auszugeben >>die für eine Schnittstelle konfiguriert wurden? Nein, nicht wirklich! Ich das schon verstanden haben
-
Thread
ATMEGA8 eingeschaltete LED Zählen
PORTB & (BIT_3)){ if( count <= 6 ) count++; }else{ if( count>8 ) count--; } if(PORTC & (BIT_4)){ if( count <= 6 ) count++; }else{ if( count>8 ) count--; } if(PORTC & (BIT_5)){ if( count <= 6 ) count++; }else{ if( count>8 ) count--;} if(PORTC
Wenn die Zahl der LEDs unwichtig ist und es nur interessant it ob alle 7 an sinf oder nicht sind geht es so schnellet [c] if(PORTB&0x0C)|(PORTC&0xF2)==0xFE) restart(); [/c]
-
Thread
Zähler gibt falschen wert aus
CS01); sei(); while(1) { switch (time_sec_zehn) { case 1: PORTC |= (1<<PC4);break; case 2: PORTC |= (1<<PC6);break; case 3: PORTC |= (1<<PC4)|(1<<PC6);break; case 4: PORTC |= (1<<PC7);break; case 5: PORTC |= (1<<PC7)|(1<<
switch (time_sec_ein) { case 1: PORTC |= (1<<PC3);break; case 2: PORTC |= (1<<PC1);break; case 3: PORTC |= (1<<PC3)|(1<<PC1);break; case 4: PORTC |= (1<<PC0);break; case 5: PORTC |= (1<<PC0)|(1<<
-
Thread
Taster - LED Beispiel
/ 7. und 8. PIN vom Port D als Ausgang DDRC &= ~(1<<0); // 1. PIN vom Port C als Eingang PORTC |= (1<<0); // internen Pull-up einschalten a = PINC & ~(1<<0); if(a != 0) // wenn Taster gedrückt { PORTD|=(1<<7); // LED8 geht an } else // wenn Taster nicht
/ 7. und 8. PIN vom Port D als Ausgang DDRC &= ~(1<<0); // 1. PIN vom Port C als Eingang PORTC |= (1<<0); // internen Pull-up einschalten a = PINC & ~(1<<0); while(1) { if(a != 0) // wenn Taster gedrückt { PORTD|=(1<<7); // LED8 geht an PORTD&=
-
Thread
10khz rechteckspannung mit uC
so verstanden und außderdem kam zu deinem Post ein anderer Post, wo drin stand, dass das nicht so geht. Bin gerade dabei das umzustetzen, wie oldmax das gesagt hat. Bzw ihr das gesagt habt;-)
+ADC; ADC_zaehler++; PORTC^=(1<<PC2); // debugpin toggeln } ISR (TIMER0_COMPB_vect) einmal pro //100us { PORTA^=(1<<PA4); // debugpin toggeln ADCSRA = ADCSRA | (1<<ADSC); //ADC start conversion } ISR
-
Thread
"Unwichtige" Fragen für die Schaltplan-Optik
Nachteil ist die schwache Verbindung, man kann nur Bauteil- und Netzliste rausziehen, Back Annotation geht garnicht. Georg
Platz einnimmt. Außerdem brauche ich funktionell keinen ganzen Port. Wenn ich aber aus PortB und PortC einen 16bit Parallelbus machen wollen würde, würde ich eindeutig auch das untere Symbol nehmen. Da geht dann Funktion vor einfachem PCB-Layout und zudem ist der Schaltplan schöner, wenn die 16 Leitungen
-
Thread
3x LED-PWM-Faden
LEDs pro Reihe mit 256 Helligkeitsstufen nur folgendes machen muss PORTA=red0; PORTB=blue0; PORTC=green0; PORTD=1; delay(1); PORTA=red1; PORTB=blue1; PORTC=green1; PORTD=2; delay(2); PORTA=red2; PORTB=blue2; PORTC=green2; PORTD=4; delay(4); PORTA=red3; PORTB=blue3; PORTC=green3; PORTD=8; delay(8); PORTA=red4; PORTB=blue4; PORTC=green4; PORTD=16; delay(16); PORTA=red5; PORTB=blue5; PORTC=green5; PORTD=32; delay(32); PORTA=red6; PORTB=blue6; PORTC=green6; PORTD=64; delay(64); PORTA=red7; PORTB=blue7; PORTC=green7