Zamiast "Toggle Pind.7 " ma być: "Toggle Portd.7 ".
zmień pind.0 na portd.0 (w obydwu liniach)
Case 1 To 28 : set portd.0; set portd.1; set portd.2; set portd.3; set portd.4; set portd.5; set portd.6; Po pierwsze bez srednika na koncu bo to nie C. Nie sadzisz ze lepiej by bylo wpisac np. PORTD = &B11110000.
mam pytanko czemu jeżeli pisze tak jak kolega tłumaczy portd.0 = portd.0 * 2 to kompilator w tym widzi błąd? chyba że to źle interpretuje Bo musisz mnożyć zawartość całego portu. Jednego bitu nie możesz pomnożyć przez 2. Poprawne więc będzie portd=portd*2 A i jeszcze na początku wpisz do portd wartość 1 :P
musi być drugi wait po zmianie bitu [syntax=basic4gl]Do Portd.0 = 1 'zapal diode Waitms 200 Portd.0 = 0 'zapal diode Waitms 200 Loop [/syntax]
Hej, Przedtem sprawdziłem tylko czy działa przetwornik. Dla pełni szczęścia ustaw jeszcze bit ADLAR w ADMUX (strona 205 pedeefa dla ATmega8). W przeciwnym wypadku bedą Ci migać co najwyżej dwie najmłodsze diody portu D. Jeżeli diody masz podłączone do VDD to mozesz zanegować ADCH (PORTD = ~ADCH) aby mieć zgodność świecenia diód z wartością ADCH. Pozdrawiam
.... problem wynika z tego, że pin powinieneś podciągać do vcc, inaczej cały czas masz stany nieustalone czyli dodaj do inicjalizacji: DDRD &= ~(1<<PD3);//pin jako wejście PORTD |= (1<<PD3);//podciąganie wewnętrzne
PORTD = 00000000; _delay_ms(530); PORTD = 00000000; _delay_ms(530); daj w petli !!
Korzystaj z symulacji krokowej. Ostatecznie nie dawaj $sim w programie natomiast waitms zmień na mniejsze (symulacja jest ok 100x wolniejsza od procka, więc zamiast waitms 200 daj 2) Sprawdzonego programu do zapalania diod na kolejnych portach nie ma. Np. możesz użyć jednej zmiennej WORD i rozbić ją potem na dwa proty. Zaletą jest to że operujesz na...
Witam. Tak, masz racje powinno być tak jak opisałeś "config portd.0=output ' pin sterujący diodą LED'' Tak samo jak zapis warunków o których piszesz i jest prawidłowy. Przetestuj te zmiany i zobaczymy.
[syntax=c]PORTD|= 1<<PD0 ; [/syntax] jest tym samym co: [syntax=c]PORTD|= 0x1; [/syntax]
Witam. Mam problem, Napisałem program ale nie działa tak jakbym tego oczekiwał. :cry: Config Portd.1 = Output , .... ........ Config Portd.1 = 0 , ..... Zauważ że cytowana wyżej linia druga zmienia wcześniejszą konfigurację portu z OUTPUT na INPUT. e marcus
Po co ustawiasz portd.4 na wejscie Hi-Z? Ustaw tak: PORTD = PORTD or &h10 Wtedy podsiągasz ten pin do plusa i nie musisz ustawiać tam jedynki w podprogramach. Przerób A na BIT, po czym Program: Portc.4 = 0 'jedna dioda zapalona Portc.5 = 1 'druga dioda zgaszona toggle a Return Program2: Portc.4 = 1 ' dioda zgaszona Portc.5 = 0 ' dioda zapalona...
Podczas ustawienia PORTD = 10101010, diody działają w niezrozumiały dla mnie sposób Bo 10101010 to dziesięć milionów sto jeden tysięcy dziesięć. W zapisie hex = 0x9A2112. Po obcięciu do 8 bit masz 0x12, czyli 00010010 - to co widzisz na diodach. Kolega wyżej podał rozwiązanie.
Nie rozumiem po co dioda LED ukazująca stan nawiewu jest podłączona do osobnego pinu. Nie ma takiej potrzeby, a nawet jest to nie wskazane. Stan wejściowy pinu portu D, nawet kiedy w DDRD jest on ustawiony jako wyjście, można odczytać z rejestru PIND, natomiast wyjściowy z PORTD - tak, ten rejestr można również odczytywać. Nie programuję w Bascom, ale...
Tak wiem że jest to większości podstawowych kursów programowania avr bo je wykonywałem z powodzeniem ale mam problem z załączeniem innej diody z tego przycisku jak już włączyłem nim pierwszą może to i głupie pytanie ale z tym mam problem gdzieś tu na forum znalazłem taki kod ale nie potrafię zrobić żeby ta dioda po naciśnięciu nie gasła tylko zapalała...
[syntax=c]int main(void) { DDRD = 0b01100000; PORTD = 0b01000000; while(1){} }[/syntax] Dioda świeci.
Wywaliłem wyłączanie tych 3 pinów przed pętlę. Masz wyświetlacz ze wspólną anodą, stąd włączenie diody następuje w przypadku podania zera na pin wyjściowy, do którego podłączony jest dany segment. Szkoda, że nie piszesz w komentarzach do instrukcji co według Ciebie ona wykonuje. [syntax=c] PORTD &= ~(1<<PD2); //włącz diodę na pinie PD2 PORTD...
1) kompilator wyrzuca jakieś błędy? aha, zdecyduj sie w jakiej notacji piszesz ;) nastaw sie na szesnastkowy Program po wykonaniu sie musi zwrócić wartość do systemu Wink (oczywiście tu go nie ma, ale to taki archaizm ze starych czasów Wink ) widać że programujesz w C, ale dla kompilatora AVR-GCC to return nie jest ważne, bo program nie powinien dojść...
Witam mam takie małe pytanie czemu diody led na wyjsciach D1-D6 mrugają a na portach D0 i D7 nie ? wpisuje taki prosty kod: #include <avr\io.h> #include <avr\delay.h> int main(void) { /* Ustawienie wyjść */ DDRD = 0x7c; for(;;) { /*wyłączenie diod*/ PORTD = 0x7c; _delay_loop_2(0xffff); /*włączenie diod*/...
Ma gasić diodę na porcie PD3. Skompiluj poniższy program w CManiaku: http://mikrokontrolery.blogspot.com/p/cm... i zastanów się dlaczego działa inaczej niż oczekujesz. Chciałem się spytać czy funkcja Sonar_pobierz_pomiar w funkcji głównej ma prawidłowe zmienne? Otrzymujesz przecież ostrzeżenie: ../Proba_10.c:50: warning:...
to zatrzymanie timera przed załadowaniem wartości jakby pomogło (przynajmniej nie zachowuje się dziwnie) teraz miga w równych odstępach ... Home Lcd "P=" ; P ; "us" Lowerline Lcd "I=" ; I ; "us " ; Licznik If Licznik = P Then Portd.2 = 0 End If If Licznik >= C Then Portd.2 = 1 Licznik = 0 End If ... Dobra odczepiam się od portów :) I już mówię dlaczego...
daj częstotliwość na 8000000. Gdzie podłączasz diodę? btw Config Portb = Output Config Portc = Output Config Portd = Output to jest nie potrzebne
Błąd algorytmu ! Jeżeli jest prawdą DZ_FIRE i key_dz_fire==0 zerujesz liczniki i zapalasz diodę i ustawiasz key_dz_fire na 1. Oznacza to że w następnych przebiegach pętli głównej nie masz szansy dotrzeć do warunku if(fire_isr==dzialko) bo go odcina nie spełniony warunek if(key_dz_fire==0). Brak jest zerowania flagi DZ_FIRE żeby była szansa wykonania...
Jak dioda ma migać to trzeba ją cyklicznie włączać i wyłączać. Ty ją tylko cyklicznie włączasz. [syntax=c]while(1) { PORTD = 0x01; _delay_ms(330); PORTD = 0x00; _delay_ms(330); } [/syntax]
MCU teoretycznie powinien wyzerować pamięć ale zdażają się nieraz "dziwne zachowania" więc warto przypisać/wyzerować wartość zamiast używać ORa zwłaszcza jeśli przed main() uruchamia się jakiś bootloader (np. arduino): Najważniejsze, czy wejścia są podciągnięte do plusa, bo jeśli nie to takie rzeczy się dzieją. kodu nie analizuję bo nie znam i nie chcę...
Witam, mam problem z portem D w atmedze8. Po podłączeniu LEDów do portu D świecą bardzo słabo. Dzieje się tak na wszystkich pinach oprócz pinu PD0, na nim dioda świeci normalnie. Co może być przyczyną?
Wstaw sobie o tak o: [syntax=basic4gl] Config Portb.0 = Output ' ustawienie portu sterującego przekaźnikiem przez tranzystor Config Portd.7 = Output ' ustawienie portu sygnalizacji zbyt wysokiej temeratury Config Portd.6 = Output Przekaznik Alias Portb.0 Buzzer Alias Portd.7 Led_pompa_stop Alias Portd.6 Reset Przekaznik Reset Buzzer Reset Led_pompa_stop...
to jest kod "programu" #include <avr/io.h> void main(void) { DDRD &= (1<<6); // while(1) { PORTD |= (1<<6); // zapal diodę LED2 } }
Ściągnij sobie z tej strony program kalkulator avr http://www.elportal.pl/index.php?module=... [syntax=basic4gl] $crystal = 1000000 $hwstack = 80 Config Timer1 = Timer , Prescale = 64 Dim Sek As Byte 's Enable Timer1 Enable Ovf1 On Ovf1 Czas Stop Timer1 Enable Interrupts Sek = 0 Do If pinc.0 = 0 then Load Timer1 , 49911...
Rejestry masz 8bitowe wiec czemu odwołujesz się if(ADCH>=400) { PORTD |= _BV(7); //Zapal diodę } Jak już chcesz to zrób to tak: if(ADC>=400) { PORTD |= _BV(7); //Zapal diodę }
Koledze chodziło abyś sobie while(1) dopisał #include <avr/io.h> void Inicjalizacja(void) { DDRD=0xff; PORTD=0x00; DDRC=0x00; PORTC=0xff; } int main(void) { Inicjalizacja(); while(1) { if(bit_is_clear(PINC, 5)) { PORTD |= _BV(5); } else { PORTD &= ~_BV(5);...
Witam, Przyznam, że powoli wymiękam, dlatego postanowiłem tutaj poszukać pomocy. Prosta sprawa: do PD2 (INT0) podpięty przycisk ściągający do masy. Przerwania uruchomione, działają, aktywują się na zmianę poziomu, jednak w kodzie poniżej wykonanie nigdy nie wpada w warunek if. [syntax=c]ISR (INT0_vect) { if(PORTD & PORTD2) zgas_diodke1(); else zapal_diodke1();...
Ma to być mniej-więcej tak: Config pind.5 = input set portd.5 s1 alias pind.5 do if s1 = 0 then ------------------ end if loop masz coś takiego? Bardzo ważny jest układ nazw PIND i PORTD Wyjście za przyciskiem bezpośrednio do masy. Masz tak? Jeśli nadal nie działa może być konieczne podanie schematu i wsadu. Dodano po 1 A skonfigurowałeś pin diody jako...
Witam Oto kod w języku C. Odnośnie schematu - będzie wszystko działało prawidłowo, gdy zastosujemy diody LED niskoprądowe (np. /*Czestotliwosc taktowania procesora 1 MHz (korzystamy z wewn. RC 1MHz) *Procesor ATmega 8 */ #define F_CPU 1000000UL #include <avrio.h> #include <utildelay.h> #define Czas_zalaczania 400//Czas oczekiwania...
Napisane na szybko nie sprawdzałem ale chyba powinno działać. [syntax=basic4gl] $regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 1000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza) '*************************************WA... 'Pamiętać o podłączeniu...
Nie wnikając w szczegóły to masz niezgodność w ATmega8. Na schemacie przełączasz RS485 portem PD2 a w programie piszesz sbi(PORTD,1);
Dałem pętlę while(1) w main i dioda nadal nie miga. Gdze ją dodałeś? U mnie działa. [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #define LED_PIN (1<<PD7) #define LED_TOG PORTD ^=LED_PIN volatile int licz; int main(void) { DDRD |= LED_PIN; TCCR0 |= (1<<CS02); TIMSK |= (1<<TOIE0);...
Spróbuj tak Do reset Portb.2 Waitms 300 set Portb set Portd reSet Portb.1 Waitms 300 set Portb set Portd reSet Portb.0 Waitms 300 set Portb set Portd reSet Portd.7 Waitms 300 set Portb set Portd reSet Portd.6 Waitms 300 set Portb set Portd reSet Portd.5 Waitms 300 set Portb set Portd Loop End Albo odwróć diody i podłącz do masy.
Wgrywam ten kod i ciągle pali mi się 1 dioda led. Dlaczego? [syntax=c] #include <avr/io.h> #include <stdlib.h> #include <util/delay.h> #include <math.h> #include "HD44780.c" int main(void) { DDRD = 0xFF; DDRC = 0x00; PORTC = 0x0f; while(1) if(!(PINC&(1<<PC4))) PORTD = (1<<PD0); if(!(PINC&(1<<PC2))) PORTD...
$regfile = "m8def.dat" $crystal = 8000000 Config Timer1 = Pwm , Pwm = 8 , Compare B Pwm = Clear Down , Prescale = 1 Config Portb = 255 Config Portc = 255 Config Portd = 255 Portb = 0 Dim A As Byte 'Czerwony Dim B As Byte 'Zielony Dim C As Byte 'Niebieski Dim D As Byte 'Czas A = 0 B = 255 C = 255 D = 4 Zolty: Do Pwm1b = A Set Portb.4 Waitms...
OK, wielkie dzięki. Mam jeszcze pytanie dotyczące rezystorów. Czy jak dam na portD rezystory 10k, a na portC rezystory 1k to będzie ok, czy raczej na portC powinienem dać rezystory ok 200ohm?
Proponuję: if (r >=g && r >= b) PORTD |= _BV(PD4) Analogicznie dla "g" i "b". Należy także gasić wszystkie diody przed sprawdzaniem warunków. Założyłem, że stan wysoki na porcie zapala diody. Jeśli zachodzą warunki podane przez kolegę Andrzej_S , to zapalają się te diody, które są równe pod warunkiem, że są to wartości największe.
Cześć Nie mam po ręką helpa z Bascoma, ale jak chcesz ustawić stan na wyjściu to chyba Portd.1 a nie Pind.1 i powinno zadziałać Piotr
Problem polega na tym ze dioda świeci kiedy nie trzeba sama z siebie. Bez mikro kontrolera jest tak samo co jest powodem ? http://obrazki.elektroda.pl/9583782400_1... Program: #define F_CPU 8000000 #include <avr/io.h> #include <util/delay.h> int main(void) { DDRD |= _BV(0)|_BV(1); PORTD |= _BV(0);...
No dobra przed usunięciem widziałem założenia : Atmega8 a piny wszystko jedno gdzie. $crystal = 1000000 $regfile = "m8def.dat" config pind.1 = output ' tu pin diody config pind.0 = input ' tu pin mikroswitcha (klikacza) set portd.0 do if pind.0 = 0 then waitms 25 if pind.0 = 0 then set portd.1 wait 2 reset portd.1 powerdown end if...
tak to ma wyglądać: ? [syntax=c] Config Pind.1 = Output ' pinMode(1, OUTPUT); Config Pind.2 = Output ' pinMode(2, OUTPUT); Config Pind.3 = Output ' pinMode(3, OUTPUT); Config Pind.4 = Output ' pinMode(4, OUTPUT); Config Pind.5 = Output ' pinMode(5, OUTPUT); Config Pind.6 = Output ' pinMode(6, OUTPUT); Config Pind.7 = Output ' pinMode(7, OUTPUT); Config...
Witam mam mały problem i proszę o w miarę możliwości szybką odpowiedz Dzisiaj kupiłem ten probramator Linki zostały usunięte - zgodnie z regulaminem pkt.3.1.18 Chcę w bascomie 1.11.9.5 zaprogramować układ ATmega8 do sterowania diodami mają się zapalać po kolei Program prosty : Portc = Output Portb = Output Portd = Output Do Portb = &00000000 Portc =...
Pozwoliłem sobie zrobić schemat tego Mrugacza : //Poprawiony// http://obrazki.elektroda.pl/5132131800_1... Zasilanie pod nóżkę 7 VCC a mase pod 8 i 22 GND. Jeżeli miałbym się przyczepić to popraw komentarze bo masz PORTD a wykonujesz na PORTB.
No o poziomie jasności. Nawet kod się znalazł ;) Do Ddrd.6 = 1 Portd.6 = 1 Waitus 100 Portd.6 = 0 nop nop Ddrd.6 = 0 I = 0 !Nie_koniec: sbic ACSR, ACO jmp Koniec Incr I nop nop nop nop nop jmp Nie_koniec !Koniec: Locate 1 , 1 Lcd I Lcd " " Waitms 200 Loop Czyli jednak wykorzystywałem wewnętrzny komparator. Dioda idzie pod PortD.6 i...
Aby sprawdzić stan wejścia czyta sie PIND, a nie PORTD. To dlaczego jak zrobie if(PIND) dioda sie swieci choc do portu nic nie ma podlaczone ?
Witam Kolega dondu ma racje dioda i tranzystor jest potrzebny ale jeśli chcesz na szybko sprawdzić kod czy działa zamiast wentylatora podłącz LED i w ten sposób sprawdzisz czy kod jest poprawnie napisany bo jak dla mnie raczej nie Sprawdź ten kod zmień sobie Porty w LCD i 1Wire oraz Wentylator czyli LED w programie. $regfile = "m8def.dat"...
Przycisk jest programowo podciągnięty do 1. Portd.0=1 Dioda ma się zapalać tylko wtedy gdy wciśnięty jest S1 czyli gdy na pinie d.0 będzie stan niski.
[syntax=bascom] Waitms 500 Portb = &B00010010 Portc = &B00001000 Portd = &B00001000 Waitms 150 Portb = &B00000100 Portc = &B00000001 Portd = &B00010001 Waitms 150 Portb = &B00001000 Portc = &B00000100 Portd = &B00100010 Waitms 150 Portb = &B00010010 Portc = &B00001000 Portd = &B00001000[/syntax] Zmienione, nadal to samo.
mam dosyć duże dośiadczenie w uP ale przeczytaj sobie mój problem: http://www.elektroda.pl/rtvforum/topic60... ps. jak kupisz nowego procka to nie tykaj fusów, tylko wgraj taki programik zapalający i gaszący diodę $regfile = "m8def.dat" $crystal = 1000000 Config Portd = Output Do Waitms 255 Set Portd.1 Waitms 255 Reset Portd.1 Loop End dioda podłączona...
Może taki kod spełni twoje oczekiwania. Mam nadzieję, że nie ma błędów. [syntax=c]#include <avr/io.h> #include <util/delay.h> unsigned char counter, leds , ledTog; int main(void){ DDRD = 0xff; //wyjścia PORTD = 0xff; //wyłącz diody PORTC |= (1<<PC0); //pull up PC.0 - podpięty klawisz do masy for(;;){ _delay_ms(20); //co 20ms sprawdzam...
oto prosty programik do obsługi ADC, wg mnie powinien wyświetlać na diodach podłączonych pod port B wartość nap. na wejściu A/C, a wyświetla tylko pierwszą zmierzoną wartość .INCLUDE "m8def.inc" .DEFAKU = R16 .DEFACC = R17 INIT: LDI AKU,LOW(RAMEND) OUT SPL,AKU LDI AKU,HIGH(RAMEND) OUT SPH,AKU LDI AKU,$FF OUT DDRD,AKU OUT...
Podaj cały kod, bo dajesz raz jeden kawałek a raz inny, nie pisząc o tym. Może to doprowadzić do nieporozumień To dlatego, że próbowałem różnych wersji. Na początek programuje kod mający na celu aktywację oscylatora: $regfile "m8def.dat" $crystal = 8000000 Config Sda = Portc.4 Config Scl = Portc.5 I2cinit I2cstart I2cwbyte &B11010000 I2cwbyte...
Nie piszę w C, ale czy nie powinno być tak? define F_CPU1000000L #include <avr/io.h> #include <util/delay.h> int main(void) { DDRD = 0xFF; while(1) { PORTD = 0xFF; _delay_ms(500); PORTD = 0x00; _delay_ms(500); } return 0; }
Witam !!! Chcę wysłać a z komórki i załączyć diodę Mogą mi koledzy podpowiedzieć co robię źle w programie ? [syntax=text] $regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 Config Serialin = Buffered , Size = 30 Config Portd = &B10111111 : Portd = &B00000000 'konfiguracja portow Config Portb = &B11111111 : Portb = &B00000000 Config Portc = &B00000000...
Witam Zrobiłem sobie układ na ATmega8 z dwoma diodami. Podłączyłem jedną do d1, drugą do d4. Chciałbym żeby mrugały na przemian, napisałem taki programik: $regfile = "m8def.dat" Config Portd = Output Portd = $b11111101 Do Waitms 100 Toggle Portd Loop End Diody migają, ale równocześnie. Co powinienem zmienić żeby migały raz jedna, raz druga? Dziękuje...
Cześć, program przy wciśnięciu 2 przycisków ma zapalić diodę i ponowne naciśnięcie 2 przycisków ma ją zgasić. 1*1=1 0*1=0 1*0=0 0*0=0 Dioda podłączona anodą do portu PORTB 0x04 Przyciski podłączone do portu PORTD 0x02 i PORTD 0x04 zwarte do masy. Uc to Atmega8. Program wygląda tak, ale nie działa: [syntax=c] #include <avr/io.h> #include <util/delay.h>...
Witam od dwóch dni raczkuje w programowaniu na Atmedze8 Napisałem programik zapalający pojedynczą diode a po nacisnieciu przycisku zmienia kierunek z prawego w lewo. Oto programik: $sim $regfile = "m8def.dat" $crystal = 8000000 Config Portd = Output Config Pinb.0 = Input Dim Kierunek As Bit Przycisk Alias Pinb.0 Set Portb.0 Portd = &B11111110 Reset...
[syntax=c]if(!(PINB&0x40)) PORTD = 0x80; // jeżeli przycisk PB1 jest wcisnięty, pali się pierwsza lampka[/syntax]PINB & 0x40 maskuje szósty bit, a nie pierwszy. W następnym warunku też źle. [syntax=c](0<<PD0)[/syntax]Nie wiem jaki cel Ci tu przyświecał, ale jeśli chcesz wyzerować PD6, to robi się to tak: PORTD &= ~(1<<PD6). Nie...
No zasilanie diody przebiegiem 36kHz to wygląda mi na zdalne sterowanie podczerwienią. Jeśli tak to zobacz RC5SEND i spółka oraz Config RC5.
Mam problem mianowicie potrzebuje układ który by zaświecał np. diode przez określony czas wiec napisałem program do atmegi8 ale dioda świeci cały czas nie reaguje na przycisk PB3 co robie nie tak ze ta dioda cały czas świeci diode podpinam do +5V i do nóżki PD7 $regfile = "m8def.dat" $crystal = 1000000 Config Pinb.3 = Input Config Pind.7 = Output Set...
witam Program steruje dwoma diodami(Led1 Portd.2, Led2 Portd.3). Klik.S1-->>Wł. led -->>klik.S1-->>Wył.led, tak samo z S2. Przycisk S3 jest 'nadrzędny'. Kliknięcie S3 wyłącza obydwa Ledy jeśli którakolwiek zapalona, ponowne kliknięcie S3 włącza obydwa Ledy. 'Na żywo' S3 zapala lub gasi ledy po kilku kliknięciach! Czy ktoś może mnie ukierunkować co nie...
Dzięki ;) teraz działa tak jak należy... Coś jeszcze jest nie tak bo jeśli kod wygląda tak, to rozjaśnia się i ściemnia jedna dioda a pozostałe cały czas świecą :/ a powinno być wygaszone bo nie używam ich w pętli: [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #define LED_0_ON PORTB&=0b10111111...
Twój program: http://obrazki.elektroda.pl/8133379300_1... a dopiero później ustawiasz na nim jedynkę: a między tymi instrukcjami jest co nieco kodu, a zegar zaledwie 1MHz , to dlaczego się dziwisz, że dostajesz impuls na transoptor? Według mnie potwierdza on, że to procesor na początku wystawia jakieś zakłócenia. Więc to nie mikrokontroler...
Dioda powinna świecić tylko kiedy naciśniesz przycisk. Podłączyłem tak jak na schemacie - dioda świeci tylko kiedy naciskam przycisk tj. wszystko działa. Jak wgram taki program to efekt taki sam jak opisywałem w poście wyżej.[syntax=basic4gl] $regfile = "m8def.dat" $crystal = 1000000 $hwstack = 40 $swstack = 16 $framesize = 32 config portb=input 'port...
Zacznę od początku mam problem z sharp 340k. Na początek chciałem zrobić "wykrywacz" czyli jak zauważy sharp 340k coś to dioda się zaświeci w dalszych etapach pracy miało by to służyć do minisumo. Tylko jest problem z tym żeby zaświeciła się dioda. Programuje w bascom. tu schemat : http://obrazki.elektroda.pl/8082435600_1... A kod to...
:arrow: acid12 Każdy z pinów PD2, PD3, PD4 (tam gdzie masz przyciski) powinieneś podłączyć przez rezystor do VCC. Tak jak teraz masz nie zadziałają jak trzeba. masz na myśli żeby je podciągnąć do Vcc? czy programowe podciągnięcie nie wystarczy? DDRD &=~ (1 << PD2); PORTD |= (1 << PD2);
Witam. Jestem na etapie czytania książki "Programowanie mikrokontrolerów AVR w języku BASCOM", kilka dni zajęło mi budowanie programatora i płytki z diodami do testowania Atmega8. Na pierwszy ogień poszedł oczywiście najprostszy program ze strony 87 - schemat ideowy układu na stronie 86. Mój problem polega na tym, że kiedy wgram bez błędów programik...
przycisk mam podlaczony do masy Dodano po 13 http://obrazki.elektroda.pl/2468105100_1... Dodano po 17 tak ma byc? [syntax=vb]$regfile = "m8def.dat" 'najpierw określamy typ proca $crystal = 1000000 'definiujemy z jakim taktowaniem będzie pracował Config Portb = Input Set Portb.0 'port b jako wejścia Portb = &B00000000 'wszędzie stan spoczynkowy-0...
Nie chodzi o opór tylko, jest to już denerwujące, że nie działa a (niby) powinno... Podpiąłem diodę pod port PB5. Wgrałem taki program: $regfile = "m8def.dat" $crystal = 8000000 Config Portb = Output Portb = &B0000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.7 , Db5 = Portd. 4 , Db6 = Portd.3 , Db7 = Portd.2 , E = Portd. 5 , Rs = Portd.6...
(na przyszłość będę już rozdzielać tematy) znalazłem jeden błąd, po zamianie PORTD = (1<<3); na PORTD | = (1<<PD3); przy zasłoniętej diodzie IR na wyświetlaczu jest cały czas 0 (lub cyfra przy której w danym momencie nastąpiło zasłonięcie), czyli w takim stanie bit D7 nie ulega zmianie. Ale przy braku zasłony dioda led(wyjście D7) dalej...
Napisz tak: [syntax=basic4gl]If PINB.0 = 1 Then PORTD.1 = 0 ' zapal diodę If PINB.0 = 0 Then PORTD.1 = 1 ' zgaś diodę 'albo inna wersja If PINB.0 = 1 Then ' jeżeli wystąpi... PORTD.1 = 0 ' zapal diodę Else ' inaczej... PORTD.1 = 1 ' zgaś diodę End If ' koniec warunku [/syntax] Wtedy będziesz miał poprawnie zapalaną i gaszoną diodę LED, przy wykryciu...
Jak juz wspomniałem BASCOM to nie moja specjalność, ale spróbuję uporządkować Twój kod. Gdy przycisk jest naciśnięty, to zwiera do masy, czyli masz 0 na wejściu, a nie 1 (warunki w IF-ach): [syntax=basic4gl]do 'pętla nieskończona if pinb.0=0 then 'jeżeli przycisk 1 wciśnięty portd.0=1 'zapal diode endif if pinb.1=0 then 'jeżeli przycisk 2 wciśnięty...
Witam, uczę się języka C i od kilku dni się głowię nad pozornie prostą instrukcją w C. ten układ to tester do czujników linii w przyszłym linefollowerze model tcrt5000 zależy mi na tym, że gdy ADC4 wykryje coś to żeby zapaliły się dwie diody, gdy ADC3 to niech zapali się tylko LED1, a gdy ADC5 wykryje niech zapali się tylko LED2, próbowałem wiele instrukcji...
Paranoja jakaś... Fusebity: C1/99 Program: #include <avr/io.h> #define F_CPU 1000000 #include <util/delay.h> int main(void) { DDRD |= 0x03; while(1) { PORTD |= _BV(0); PORTD |= _BV(1); _delay_ms(250); _delay_ms(250); PORTD &= ~_BV(0); PORTD &= ~_BV(1); _delay_ms(250);...
Witam. Wlasnie zacząłem zabawe z programowaniem i napisałem swój pierwszy ambitny program :). Zasada jes prosta po wciśnieciu przycisku dioda swieci okreslony czas. Mam pytanie odnośnie przełącznika, jaką podać instrukcę żeby dioda zaświeciła sie na określony czas np 2 sekundy jeśli przełącznik będzie cały czas wciśnięty [syntax=c]#define F_CPU 1000000L...
Witam Na wstępie dodam że jestem początkujący. Ostatnio udało mi się zamrugać diodą i zrodził mi się ambitniejszy plan a mianowicie chciałbym zrobić coś takiego: mam 8 diod czerwonych mam 8 diod zielonych mam 7 diod zółtych mam atemga8 podpinam 8 diod czerwonych pod port PB podpinam 8 diod zielonych pod port PD podpinam 7 diod pod port PC diody podłączone...
tak powinno dzialac , przypadek gdy porty są podciagane do masy po przycisnieciu przycisku PORTD.0=1; PORTD.2=1; if (PIND.0==0) a=-1; if (PIND.2==0) a=1; if (a==-1) P5; // dioda świeci if(a==1) O5; // dioda gaśnie
Witam. Podłaczyłem 74LS164 do Atmega8. Wejscia AiB 74164 do PD.0, wejscie CLK do PD.1 do wyjść 74164 Podłaczyłem diody led. wprowadziłem do procesora kod 'test 74ls164 $regfile = "m8def.dat" $crystal = 8000000 Config Pind.0 = Output Config Pind.1 = Output Dim Z As Byte Do Z = 1 Shiftout Portd.0 , Portd.1 , Z , 0 Wait 1 Z = 2 Shiftout Portd.0...
A gdzie masz polecenie Start Timer0? Nie musi byc. Od momentu: Config Timer0 = Timer ,.... Timer startuje liczenie czasu w/g. zadanej konfiguracji. A jak autor mierzy ten czas? (8.2 ms).. Jezeli dioda jest indykatorem zmiany stanu pinu/portu wyjsciowego to nalezy odwrocic polaryzacje diody i wtedy zapali sie ona na stale po uplywie ok. 8.9 ms.od momentu...
Napisałem właśnie kilka minut temu program którym sterowałem diodami tylko stany wysokie na niskie pozmieniałem ale nie działa;/ Dodano po 2 Gdyby wyświetlacz miał wspólną katodę nie byłoby problemu ponieważ podłączyłbym jako diody, a tutaj trzeba dać inne stany czego nie potrafię bo nigdy ich nie zmieniałem.
Witam, właśnie się uczę programować atmege8 w C i mam problem z taką "zabawą" na diodach. Wymyśliłem sobie, że to będzie coś w rodzaju Snake. "Idą" sobie 3 diody, a gdy dojdą do końca portu to wtedy jedna dioda idzie na początek a przy kolejnym naciśnięciu przycisku 2 diody idą na początek i tak w kółko (zależnie który przycisk wcisnę to diody się przesuwają...
Ok, dałem 5k. Kondensatora nie ma, bo go nie dałem, bo go nie mam (jeszcze). Dioda z pętli cały czas miga. Przy dowolnym obrocie enkodera jedna z pozostałych diod (zawsze ta sama) się zapali i zgaśnie, a druga zmienia swój stan, ale chyba bardziej w losowy sposób niż zależny ode mnie. [syntax=c]#define F_CPU 1000000L #include <avr/io.h> #include...
Jak na początkującego programistę błahy problem jest dużym problemem. Próbuje napisać taki program Opracowanie programu realizującego sekwencyjne zapalanie się diod LED w kolejności: LED0, LED1, LED2, LED3, LED0 itd. dla stanu logicznego „0” na wejściu SW0 oraz LED3, LED2, LED1, LED0, LED0 itd. w przeciwnym przypadku. Zmiana kierunku zapalania...
Witam Mam problem z odbiornikiem RC5 na attiny2313 otóż gdy wgram ten program: [syntax=basic4gl]$regfile = "attiny2313.dat" $crystal = 8000000 Config Pind.2 = Input Config Pind.6 = Output Config Rc5 = Pind.2 Dioda Alias Portd.6 Enable Interrupts Dim Komenda As Byte , Adres As Byte Reset Dioda Do Getrc5(adres , Komenda) Komenda = Komenda And &B01111111...
Napisałem taki oto prosty program. [syntax=c]#include <avr/io.h> #include <util/delay.h> #define LED (1<<PD2) // Do PD2 podpiąłem diodę LED #define KEY (1<<PD6) int main(void) { PORTD |= KEY; DDRD |= LED; while( 1 ) { if( !( PIND & KEY ) ) PORTD ^= LED; } } [/syntax] Z założenia wynika, że po zwarciu PD6 do GND powinien zmieniać...
Prubuje napisać program do obsługi migomatu na atmega8 w BASCOMIE. Mam takie cos: $regfile = "m8def.dat" $crystal = 1000000 Config Portd = &B11111101 Portd = &B00000000 Do If Pind.1 = 1 Then 'jeżeli uchwyt wciśnięty Waitms 30 'drganie styków Portd.0 = 1 'zapal diode spawania Portd.5 = 1 'włącz gaz Waitms 250 'czekaj Xms Portd.6 = 1 'włącz...
Kolega podłączał przewody od silnika bezpośrednio do procka ? Korzystam z płytki uruchomieniowej zrobionej z tego schematu(pod programatorem): http://ajd.czest.pl/~pawel.borkowski/wyk... i wszystko co mam podłączam do goldpinów tam wyprowadzony, więc chyba można powiedzieć, że bezpośrednio. Podłączałem silnik także po tym, gdy wgrałem...
Korzystam z ksiazki M.Wiazania i kompilujac program zamieszczony ponizej nie dzialaja mi polecenia wait i waitms. W wyniku programu diody ciagle swieca a powinny mrugac. Uklad z mk sam zrobilem( 8 diod mikrostyk i rezonator +atmega8) Posiadam bascoma-avr w wersji demo. $sim $regfile = "m8def.dat" $crystal = 8000000 Config Portd = Output Config...
Witam, Próbuję moich sił w programowaniu w bascom'ie. Chciałbym zaprogramować atmega8 tak aby podczas przyciskania przycisku zapaliła się dioda i na wyświetlaczu pojawił się napis. Jeżeli przycisk nie będzie naciskany to dioda się nie powinna świecić a napis powinien się zmienić. Co jest nie tak w moim programie? Proszę o zapoznanie się, z TYM tematem....
Zrobiłem tak: Do pętli głównej dodałem : _delay_ms(1000); PORTD |= _BV(7); _delay_ms(1000); PORTD &= ~_BV(7); I teraz widzę że układ raz odczyta (bzdurę) z I2C i na tym odczyt się kończy…. ALE dioda w ciąż miga co sekundę… Po każdym resecie odczytuje nową wartość (bzdurę)
Cześć. Mam problem z charlieplexing-iem. Otóż posiadam Atmegę 8 i potrzebowałem wysterować 20 ledów. Zrobiłem więc coś takiego http://obrazki.elektroda.pl/3548434100_1... Jak widać do sterowania diodami wykorzystuję pierwsze 5 pinów portu D. Następnie stworzyłem taki kod: [syntax=c]#define F_CPU 8000000L #include <avr/io.h> #include...
nie mogę wstawić obrazka bo korzystam z telefonu :/ niestety. Ale mogę wam opisać jak to połączyłem. Zasilanie ze stabilizatora filtrowane kondensatorami ceramicznymi 100nF. Kondensator na tuż przy nóżkach procesora między Vcc a Gnd. tak samo zasilone mam wejscia analogowe. Między Avcc a Aref wstawiony mam kondensator 100nF. Reset przez rezystor 470...
Witm męczę się od dwóch dni z przerwaniem zewnętrznym Atmega8. Programowania dopiero się uczę chciałem wypróbować jak najbardziej łopatologicznie się da, jak działają takowe przerwania. Program działa tak ze cały czas miga na przemian raz jedna raz druga dioda lecz gdy na 4 pinie pojawi sie stan niski zacznie działać przerwanie i na 10s zapali się 3...
Witam, jako początkujący programista atmegi8 chciałem uruchomić sobie wyświetlacz LCD 20x2, wypisać na nim jakiś stały napis (obojętnie co) i napotkałem na problem. Oto schemat i króciutki programik: $regfile = "m8def.dat" 'Procek ATMEGA8 $crystal = 1000000 '1MHz - Kwarc 1MHz Config Portd.7 = Output 'PORTD.7 jako wyjście Config Lcd = 20 *...
portd atmega8 atmega8 portd atmega8 bascom portd
tranzystor bc337 amilo instrukcja mechanizm delonghi
piekarnik parowy piekarnik parowy
Electrolux pralka – wyciek wody z prawej góry, kapanie z dozownika lub elektrozaworu Citroen Jumper 2002 – lokalizacja włącznika grzania siedzenia, przyciski, bezpiecznik F45