Skocz do zawartości

m471

Użytkownicy
  • Zawartość

    8
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralna

O m471

  • Ranga
    2/10

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. @Treker Okej rozumiem że to błąd, nie w tym problem. Póki co, do mikrokontrolera zamiast silników podłączyłem diody i okazało się że prąd nawet nie płynie. Stąd zastanawiam się, czy wina leży w kodzie, np błędna inicjacja, czy w płytce, przez co mikrokontroler nie może działać poprawnie
  2. Witam, Mam problem ze światłolubem, otóż układ na płytce nie działa. Nie wiem czy to problem w kodzie (wiadomo że czasem drobna "literówka" może zdyskwalifikować cały projekt, a moje początkujące oko niczego nie widzi), czy z płytką, czy w ogóle z elektroniką. Załączam kod (C) oraz schemat (nie widać zasilacza, napięcie jest stabilizowane do 5V). Z góry dziękuję za pomoc Pozdrawiam Kod: #include <avr/io.h> #include <avr/interrupt.h> volatile signed int tmp1, tmp2; //tmp1 lewy czujnik void timer_init() { TCCR1A|= (_BV(COM1A1) | _BV(COM1B1)); OCR1A= 0; OCR1B= 0; TCCR1B|= _BV(CS10); TCCR1B|= (_BV(WGM12) | _BV(WGM10)); DDRB|= ( _BV(PB1) | _BV(PB2) ); } void ADC_init() { ADCSRA|= ( _BV(ADEN) | _BV(ADIE) ); ADMUX|= ( _BV(REFS0) | _BV(ADLAR) ); } ISR(ADC_vect) { if(ADMUX & 1) { tmp2=ADCH; } else { tmp1=ADCH; } ADMUX^= 1; ADCSRA|= _BV(ADSC); } int main(void) { timer_init(); ADC_init(); DDRC=0x00; PORTC=0x00; DDRD=1; PORTD=0; sei(); ADCSRA|= _BV(ADSC); while(1) { while(tmp1<=500 || tmp2<=500) //swiatło świeci { while(tmp1-tmp2>10) //światło na lewym mocniejsze { OCR1A=256; OCR1B=0; } while(tmp2-tmp1>10) //na prawym { OCR1A=0; OCR1B=256; } while((tmp1-tmp2<=10) ) // nieduża różnica { OCR1A=128; OCR1B=128; } OCR1A= 0; OCR1B= 0; } } } Schemat:
  3. Witam Czy testował ktoś z was tą bibliotekę na kontrolerze SH1106? https://github.com/Sylaina/oled-display Zastanawiam się czy problem leży w wadliwym kontrolerze czy problemie z biblioteką (obstawiam opcje pierwszą jednak pytam dla pewności) W przypadku takiego kodu zapala się dioda podłączona do PD1 i nic dalej się nie dzieje: int main(void) { DDRD|=1; PORTD|=1; lcd_init(LCD_DISP_ON); DDRD|=1; PORTD|=1; lcd_puts("Hello World"); } Natomiast w tym przypadku dioda się nie zapala int main(void) { lcd_init(LCD_DISP_ON); DDRD|=1; PORTD|=1; lcd_puts("Hello World"); while(1) } Używam atmegi88PA, z góry dziękuje za pomoc Pozdrawiam
  4. Witam, napisałem prosty program na atmege88pa i nie działa on poprawnie. Od kilku godzin nie mogę znaleść błędu, kompilowałem na eclipse oraz atmel studio i próbowałem kod na dwóch procesorach, dioda cały czas świeci, załączam kod i z góry dziękuję za pomoc. #include <avr/io.h> #include <avr/interrupt.h> volatile int z = 0; void LED() { int l = z; while(l==z){PORTD|=1;} } void LED2() { int l = z; while(l==z){PORTD=0;} } ISR(PCINT0_vect) { uint8_t pin = PINB; if((pin ^ 0x1F)) { z^=1; } } int main() { DDRB=0; PORTB|=0x1F; DDRD |= 2; PORTD = 0; PCICR|= _BV(PCIE0); PCMSK0 |= ( _BV(PCINT0) | _BV(PCINT1) | _BV(PCINT2) | _BV(PCINT3) | _BV(PCINT4) ); while(1) { LED(); LED2(); } }
  5. Jak w takim razie przygotować w eagle miejsce do przylutowania tej wstążki?
  6. Tak jak w temacie, nigdzie nie mogę znaleźć biblioteki CAD do żadnego z w.w. kontrolerów.
  7. Do SSD1306 dokumentacje znalazłem, z tym ze on w przeciwieństwie do wymienionego przeze mnie wcześniej kontrolera ma 64 a nie 32 rzędy
  8. Witam, nigdzie nie mogę znaleźć informacji na temat tego kontrolera, wie ktoś co to za kontroler lub najlepiej ma do niego dokumentacje?
×
×
  • Utwórz nowe...