target !! ; #define SDA 1 // SDA Port D, Pin 4 #define SCL 0 // SCL Port D, Pin 5 #define SDA_PORT PORTC // SDA Port D #define SCL_PORT PORTC // SCL Port D ;****** ;-- map the IO register back into the IO address space #define SDA_DDR (_SFR_IO_ADDR(SDA_PORT) - 1) #define SCL_DDR (_SFR_IO_ADDR(SCL_PORT
.4 '--- Testpins für Zeitmessung 'Irq_zeit Alias Portd.0 'Config Irq_zeit = Output 'Lcd_zeit Alias Portc.5 'Config Lcd_zeit = Output '### Variablen anlegen Dim Uhr_modus As Byte Dim Anzeigen As Byte Dim Anzeigetimer As Byte '--- Uhrenregister Dim Uhr_arr(4) As Byte Dim Uhrenregister As Dword At Uhr_arr
byte zaehler; void setup() { DDRC=0x0F; } void loop() { if(zaehler>15) zaehler=0; PORTC=zaehler; if(digitalRead(pin[zaehler])) zaehler++; } [/c] Danach kannst du den ganzen HT12E abbilden (du brauchst dann nur noch 1 Ausgang statt 4). Und man stellt die Tastatur auf eine 4x4 Matrix
Programm auf ein Minimum reduzieren: [c] int main() { PORTA = 0xFF; PORTB = 0xFF; PORTC = 0xFF; PORTD = 0xFF; set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_enable(); sleep_mode(); while (1); } [/c] 4) Dann nochmal messen. Wenn du dann immer noch unzufrieden
#include <avr/io.h> #include <avr/sleep.h> int main() { //PORTA = 0xFF PORTB = 0x0; PORTC = 0x0; PORTD = 0x0; set_sleep_mode(SLEEP_MODE_PWR_SAVE); sleep_enable(); sleep_mode(); while (1); } [/c] Da noch eine LED an PB5 verbaut ist, habe ich die PORTs mal schnell mit
to output sbi(DDRC, DISCHARGE_C); // switch to 0 for discharge cbi(PORTC, DISCHARGE_C); // wait until C is discharged _delay_ms(100); // set to input cbi(DDRC, DISCHARGE_C); // set to output sbi(DDRC, CHARGE_C); // start charging sbi(PORTC, CHARGE_C); // wait for interrupt while(!util_IsBitSet(ACSR, ACI)) wdt_reset(); _delay_ms(100); } } ISR(ANA_COMP_vect) { // clear interrupt sbi(ACSR
verschoben sondern C-üblich maskiert. Das Problem erinnert an den Jtag-Port bei manchen Atmegas, der PortC Blockiert. Muss beim Attiny85 irgendwas freigeschaltet werden?
schrieb im Beitrag #5376466: > Das Problem erinnert an den Jtag-Port bei manchen Atmegas, der PortC > Blockiert. Muss beim Attiny85 irgendwas freigeschaltet werden? Nein. Allerdings kann man durchaus auf mehrere Arten dafür sorgen, dass sie nicht korrekt als Input funktionieren. Das hängt
Problems habe ich keine schlüssige Erklärung. Ich betreibe den PCF8574 an der TWI Schnittstelle (PORTC) eines XMEGA32 Mit folgendem Code lese ich den PCF8574 ein. // Read byte uint8_t PCF8574_IO_Read(uint8_t address) { // prepare PCF8574 for read Write_byte(address, 0xff); // Wait for
den Phasenakkumulator while(SPITBE == 0){} //solange der Buffer nicht leer ist warte PORTC.RC9 = 1; //RESET PIN while(SPITBE == 0){} //solange der Buffer nicht leer ist warte //RESET muss für den gesamten Zyklus (beim Daten senden) an bleiben SPI1_Write
//MSB für 100kHz laden while(SPITBE == 0){} //solange der Buffer nicht leer ist warte PORTC.RC9 = 0; } void set_peripheral_pps_pins(){ RPOR11.RP22R0 = 1; RPOR11.RP22R1 = 0; RPOR11.RP22R2 = 0; RPOR11.RP22R3 = 1; RPOR11.RP22R4 = 0; RPOR11.RP22R5 = 0; //
r16 out DDRF,r16 ldi r16,-1 ;PullUp an allen Ports aktivieren out PORTB,r16 out PORTC,r16 out PORTD,r16 out PORTE,r16 out PORTF,r16 cbi PORTE,2 ;/HWB, liegt auf Masse ;alle Funktionseinheiten abschalten ldi r16,1<<PRTWI|1<<PRTIM0|1<<PRTIM1|1<<PRSPI|1<<PRADC sts
0xFF; //Port D -> Alle Bits auf LOW DDRC = 0x00; //Port C -> Eingänge PORTC = 0xFF; //Port C -> Pull-Ups aktivieren while(1) { if (Debounce(PINC,PINC0) == 1 && Modus > 1) { Modus -= 1; } if (Debounce(PINC,PINC1) == 1
nämlich Enable von LCD angeschlossen. Es hat aber nichts mit Busy-Flag zu tun. Busy ist bei mir D7 (PORTC.3, der von Natur digital ist) Trotzdem danke für den Hinweis! Habe 9-10 Tage dran gesessen!
Johann R. schrieb im Beitrag #5355494: > Busy ist bei mir D7 (PORTC.3, der von Natur digital ist) Und ob RC3 analog ist!(RC3/ANA7) Im Datenblatt steht's schwarz auf weiss! Gruss Picfan
daran. Konkret möchte ich den Timer0 von Port C nutzen. Hier mein Code zur Initialisierung: [c] PORTC.DIR = 0xFF; TCC0.PER = 0xFFFF; TCC0.CTRLA = 0x03; //Prescaler 4 TCC0.CTRLB = 0x23; //Ausgabe an Port C0 & Single Slope TCC0.CCB = 0xFEE0; [/c] Gruß
Hallo, hier mein Code: alle vier Ports auf PWM geschaltet void sinus_init(void) { PORTC.DIRSET = PIN0_bm; // Ausgang PORTC.DIRSET = PIN1_bm; // Ausgang PORTC.DIRSET = PIN2_bm; // Ausgang PORTC.DIRSET = PIN3_bm; // Ausgang TCC0_CTRLA = TC_CLKSEL_DIV1_gc; // Prozessortakt
PORTC alle Segmente belegen, jedoch das letzte musste ich auf PB2 legen(auf das letzte Segment also der Punkt kann ich verzichten) [segment_2] Nun mein Problem: Sobald ich ein char schreibe und das dann
SegmentBits -> untere 4Bits auf PORTA */ PORTB PIN 7||| /* Segment Bit3 -> Bit4 auf PORTB */ PORTC PIN 432 /* untere 3 SegmentBits -> Bits2..4 auf PORTC */ [/code] - Segmentwert in temporäre Variable übernehmen - gewünschte Bits maskieren und verschieben - Zielbits löschen - mit PORTx
den PORT C als Ausgang nutzen. Jedoch messe ich bei den Ausgängen nur sehr geringe Spannungen. PORTC0= 2,8V PORTC1= 1,7V PORTC2= 2,8V PORTC3= 5,0V //so sollte es sein. Ich versuche mit jedem Ausgang einen Transistor zu schalten, welche mir ein Relais durchschalten. Leider funktioniert es nur
) //Motor 2 down on. #define M1_AUF_AUS PORTC &= ~(1<<PC0) //Motor 1 up off. #define M1_AB_AUS PORTC &= ~(1<<PC1) //Motor 1 down off. #define M2_AUF_AUS PORTC &= ~(1<<PC2) //Motor 2 up off. #define M2_AB_AUS PORTC &
Atmega16 probiert. Es "leuchten" nur PB5 und PB6, "miso" bzw "mosi". ich habe dein programm für den PortC umgeschrieben. leider ohne erfolg. hier leuchtet auch garnichts. komplett nichts. @gustav: habe die switches mit den LEDs verbunden. Funktioniert super! kontakte funktionieren! habe es mit
Grabenkämpfe wenn jemand behauptet hat AVR/PIC/8051 sei besser... Und an Standardfehlern wie 'an PortC funktionieren einige Bits nicht' konnte man sich auch Stunden aufhalten und das Problem wurde hier jede Woche aufs Neue gepostet. Genauso muss man seine 32 Bit Pappenheimer kennenlernen wenn man schnell
Segmente, gemeinsame Kathode. Jedes Dieser Segmente ist mit einem Transistor verbunden, der durch PortC des µC "geschaltet" wird. Dadurch hat man eben das gewöhnliche Multiplexen der Segmente. > Den Sensor auf dem zweiten Bild würde ich wesentlich näher an den MC > bringen, um unnötige Drahtverbindungen
Micro_unten = PIND & 0b00000010; while (Arm_oben == 1) { PORTC |= 0b00000001; if (Micro_unten == 0 ) { PORTC &= 0b11111100; Arm_oben = 0; } } } } Der Motor bleibt auch wie
Stabspule mit möglichst hoher Resonenzfrequenz. Der Strom ist minimal (unter 10mA), wenn man nicht von PortC digitale Ausgänge mit Strom belastet, wenn also alles Analogeingänge sind oder unbenutzt.