Nie mogę się doszukać w helpie jak skonfigurować i używać PWM dla Tiny2313 w Bascom AVR a wyszukiwarka na forum nie działa, ktoś może mi pomóc? Ponieważ nie za bardzo ufam Bascomowi przy konfiguracji automatycznej( Config Timerx) , to wolę poustawiać rejestry ręcznie , korzystając z dokumentacji :D $regfile = "attiny2313.dat" $crystal = 1000000...
Problem powoduje używanie waitms. Podczas wykonywania waitms procesor pracuje tak jakby w pętli do..loop i nie reaguje na nic. W zasadzie nie powinna być używana. Rodzi więcej problemow, a wcale nic nie ułatwia. Zastosuj timer do sterowania diodą zamiast waitms.
No własnie w tym rzecz żeby mieć minimalne pojęcie o sprzęcie który próbujemy oprogramować. W takim telegraficznym skrócie fabrycznie nowy mikrokontroler przetwarza milion operacji na sekundę (1MHz). Jeśli teraz poinformowałeś kompilator że procesor śmiga z prędkością 1MHz i chcesz żeby odczekał 1 sekundę, to kompilator każe policzyć procesorowi do...
No na modyfikację nie mam czasu. Zwłaszcza, że już dawno nic nie pisałem. W dodatku ja nie używam wait (i Tobie też odradzam) co wymaga trochę innego podejścia do pisania programu. Mogę jedynie podpowiedzieć, że najlepiej było by skorzystać z przerwań INT0 i INT1 podłączonych pod przyciski. Wtedy przerwanie aktualnego zadania było by możliwe natychmiast....
To możesz zrobić tak: [syntax=basic4gl] Odczytaj_sprzetowy_uart: Dane = "" Do 'Odbierz znak po znaku Kod = Inkey() Dane = Dane + Chr(kod) 'Zapisz w Dane If Dane = "Obroty1" Then Obroty = 1 If Dane = "Obroty2" Then Obroty = 2 If Dane = "Obroty3" Then Obroty = 3 Bufor = Ischarwaiting() 'Zakoncz jeśli brak znaku Loop Until Bufor = 0 Return [/syntax] i...
jeżeli używasz kwarcu 1MHz to powinno być $crystal = 1000000 zamiast 1000 (częstotliwość podajemy w Hz, nie w kHz)
Proszę. Nie opisywałem go i tutaj może wyglądać dziwnie, ale u mnie rysuje linie łączące bloki. Wygląda to jak na załączonym obrazku i nie mam potrzeby dla takiego kodziku tego opisywać. http://obrazki.elektroda.pl/9672124500_1... Błąd mógł się wkraść bo to tylko tak z doskoku dla relaksu napisałem w pół godzinki. Życzę owocnego testowania...
Nie dziwne- reset zaczyna się od GND- tak zrób.
Jak dopisałem na początku: $regfile = "attiny2313.dat" to zaczęło się kompilować.
Chwile sie pobawiłem i zastanawiałem sie czemu mi zle działa dioda podpięta do PORTB.3 a to jest związane z OCR1A dlatego zle działała. Nie dlatego, nie ma tu żadnego związku. OCR1A jest to wpis do rejestru, który służy do określenia górnej granicy (TOP) do jakiej ma liczyc Timer1 co odpowiada upływowi czasu tu akutat 1 sec., zaczym się wyzeruje. Jeżeli...
1.Konfiguruje się PORT 2.Podciąganie do plusa włącza się w PORT 3.Przyciski czyta się z PIN Sterować można PORT`em a sprawdza się PIN [syntax=basic4gl] Config PORT.x = Input 'nie podłaczamy driverow - port bedzie wejsciem PORT.x = 1 'sterujemy portem, podłączamy wewnętrzny rezystor Przycisk Alias PIN.x ' PIN PIN PIN PIN! [/syntax]
Mam takową też i kompiluje bez problemu. Zajrze później bo mam swoje zajęcia :P http://obrazki.elektroda.pl/4925998200_1...
Bascom ma symulator, w którym możesz sobie patrzeć jak ci się zmienna zwiększa. Języki nie przestrzegają ściśle reguł zapisu matematycznego.
tak, teraz te 2 przypisania odnoszą się do Timera 1 i wyprowadzeń oc1a i oc1b, więc poprawnie zakładając, że konfiguracja uwzględnia tryb 10-bit, czyli: Config Timer1 = Pwm , Pwm = 10, Compare A Pwm = Clear Up, Compare B Pwm = Clear Up, Prescale = 1
Sda i Scl są skonfigurowane w kompilatorze (używam Bascom Avr). Adres się zgadza. A sprawdziłeś czy Twój PCF odpowiada ACK , po wysłaniu jego adresu na magistralę :?: Piotrek
Poczytaj sobie w helpie o "debounce".
1. Co? ;) 2. Polecenie Set Tccr1b.7 ustawi tylko bit nr 7. Własnie sprawdziłem. I to nie w symulacji tylko deassemblując kod a więc nie ma mowy o pomyłce. Taki kod: Portb = &B00000000 Portd = &B00000000 Set Tccr1b.7 daje to: ldi R24, 0 out PORTB, R24 ldi R24, 0 out PORTD, R24 in R24, TCCR1B ori R24, 128 out TCCR1B, R24
Po co stosować tu przerwanie? Kardynalny błąd to stosowanie polceceń opóźnień w przerwaniach. W tym programie problem tkwi w: If Przycisk = 0 Then Waitms 100 If Przycisk = 0 Then Incr Sekwencja If Sekwencja = 0 Then Incr Sekwencja If Sekwencja = 4 Then Sekwencja = 1 End If End If End If End If Popraw na: If Przycisk = 0 Then Waitms 100 If Przycisk =...
Z filmiku wychodzi, że fabryczny zegar mikrokontrolera (1 MHz) działa 4 za wolno (w 9,026 s zliczył: (12,58-10,34) s i częstotliwość pokazywania cyfr ok. 6,25 Hz) więc odznacz CKDIV8 i ustaw CKSEL zgodnie z rezonatorem na PCB (pewnie 4 MHz) https://ww1.microchip.com/downloads/en/D... - od str. 22 CKSEL3..1...
Wielopoziomowe menu to nie problem. 1) Masz główną pętlę do-loop. W niej piszesz 'menu główne' - korzystając z if-ów i jakiegos licznika który będziesz mógł zwiększać lub zmiejszać za pomocą przycisków góra/dół 2) Znając swój licznik, wiesz dokladnie która opcja menu jest wybrana, więc dopisujesz if-a - zeby skoczył do podprogramu który ma obsługiwać...
Szukaj i ustaw mniej więcej tak: Ext.Crystal.Osc frequency 3.0-8.0 Startup time i reszta raczej nie istotne w Twoim przypadku.
"Then" powinno być w tej samej linii do "If".
Nie wykrywa Ci procka, jakie masz fusebity? I sprawdź czy poprawnie podłączyłeś programator z procesorem
$regfile = "attiny2313.DAT" lub zaznaczenie uC w opcjach kompilatora. Dodatkowo być może przyjdzie się zmagać z "fusami" bo Tiny 2313 ma preskaler ustawiony do podziału zegara przez 8. Przy częstotliwości generatora kwarcowego np. 16MHz chodzi z częstotliwością 2MHz. Jeżeli to nie przeszkadza to wystarczy w Bascomie wskazać zegar 2000000Hz i po kłopocie.
Declare Sub Gettime Declare Sub Settime Dim S As Byte Dim M As Byte Dim H As Byte Dim Yd As Byte Dim Wm As Byte Podprogram odczytu pcf8583: Sub Gettime I2cstart 'generate start I2cwbyte &HA2 'write addres of PCF8583 (a0 do plusa) I2cwbyte 2 'select second register I2cstart 'generate repeated start I2cwbyte &HA3 'write address for reading info I2crbyte...
Na 99% jest uszkodzony lub niezgodny z wersją BASCOM-a plik attiny2313.dat.
Dzielenie przez 16 to to samo co przesuwanie bajtu w prawo o 4. Czyli jest to wywalenie jakby 4 najmłodszych bitów, czyli odczyt temp będzie z dokładnością do 0,5 stopnia. Zajrzyj do notki. 5 najstarszych bitów to znak czy dodatnia czy ujemna, a 4 najmłodsze oznaczają miejsca po przecinku. Rozumiem ze zmiana z systemu binarnego na dziesiętny jest znana?...
Lecz zrobiłem sobie testy: Że na wyświetlaczu wyświetlam wartość B, i jak się okazało, jeśli zamienię Config Timer0 = Timer , Prescale = 1 na Config Timer0 = Timer , Prescale = 8 to wartość B zmienia się szybciej! Dlaczego tak się dzieje? Może dlatego że jest jest prescale =1 to przerwanie jest wykonywane co 32us czyli w czasie tego waitams 20 trafia...
I i $crystal=
Przepraszam ale w pierwszej wypowiedzi popełniłem błąd logiczny - oba przerwania powinny być ustawione na te same zbocze a nie różne. Dlaczego, bo tak jak napisałem wcześniej nie będzie można określić kierunku zmian, zawsze bedzie ta sama kolejność wywoływania przerwań. Obojętnie czy kręcimy w lewo czy w prawo. np. ChA narastanie 0->1 a ChB opadanie...
Poza zmianą nazwy portów będziesz musiał odpowiednio skonfigurować obsługę timera bo z pewnością on jest wykorzystany do liczenia czasu i obsługi wyświetlacza led .
Dim State As Byte Dim I As Byte Do For I = 0 To 100 If Pind.4 = 0 Then State = 0 End If If Pind.5 = 0 Then State = 1 End If Waitms 10 Next I If State = 0 Then Rotate Portb , Left Else Rotate Portb , Right End If Loop
Przechodziłem już to, MAX dopasowuje Atmegowe 0-5V do RS'owego +/- 3-15V Jest naprawdę duże prawdopodobieństwo, że Ci to ruszy po dodaniu konwertera. Max kosztuje zetkę i wymaga raptem 4-rech kondensatorów ;-) Osobiście używam 1uF SMD, sprawują się wyśmienicie. P.S. możesz na etapie testów zmniejszyć prędkość np. do 9600.
Jest to kod z Pana Wiązani być może nieudolnie przerobiony. Oryginał ma tak: Dim licz_8ms As Byte Incr Licz_8ms If Licz_8ms = 125 Then ............. I to działa, czyli ja nie mogę używać liczby stałoprzecinkowej . No dokładnie. To działa tylko dla Byte (i podobnych). Chociaż typ danych Single mówi, iz może przyjmować wartości stało i zmiennoprzcinkowe....
Raczej schemat zgodny jest z programem. Ja optuję jednak na program zgodny ze schematem ;-) Albert
...Jeżeli ktoś ma jakiś pomysł ... Ja mam taki pomysł :D $regfile = "ATtiny2313.dat" $crystal = 4000000 Dim Wa As Byte , Kierunek As Byte Config Portb = Output Config Portd = Input Wa = 99 Portd = &B1111 Do Lus: Kierunek = Pind And &H0F ' 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 On Kierunek Gosub Na , Na , Na , Na , Na , Bl , Fl , Ll , Na...
Tak, teraz jest zaprogramowany. Z ciekawości pytam jak długo trwa programowanie ATTiny2313 tym programatorem ?
Człowieku, jesteś genialny. :D Dzięki. Mógłbyś jeszcze napisać skąd się to wzięło, tzn. skąd wiesz, że w R0 jest wartość MCUSR? :) ...z dokumentacji BASCOM'a 1.12.0.0 (Config Watchdog - na samym końcu strony) bo sam niedawno tego szukałem
1) jeśli używasz przycisków to zawsze podłącz go tak aby przyciśnięcie zwierało nóżkę portu do masy czyli do -. To naprawdę ułatwia sprawę i zawsze działa 2) dobra praktyka - przyciski, jumpery itp podłączaj do pinu procesora przez rezystor np 180 omów. Chodzi o to że kiedyś możesz się pomylić, ustawić pin jako wyjście, dać na nim 1 czyli napięcie +...
http://www.elektroda.pl/rtvforum/viewtop...
Do tej lampki wystarczy 1/4 twojego programu. Dodano po 7 Zadeklaruj zmienną , by zwiększała się do 255 gdy PINB.0=0 i zmniejszała gdy PINB.0=1. Możesz to zrobić w pętli DO...LOOP.
Jaką częstotliwość zegara masz podaną w ustawieniach Bascoma, tak samo jaki uK masz podany? Zawsze lepiej użyć dyrektyw REGFILE i CRYSTAL. Czy poprawnie masz ustawione źródło sygnału zegarowego w bitach konfiguracyjnych? Poprawiony kod: $regfile = "attiny2313.dat" $crystal = 1000000 Config pind.6 = output Config pind.4 = output portd.4 = 0...
Przestudiować wiele już w tym dziale zamieszczonych przypadków/opisów konfiguracji fusebitów i ustawić na zadeklarowane taktowanie µC z rezonatora kwarcowego 16MHz. Póki co fabrycznie jest 1MHz z wewnętrznego oscylatora RC.
W jakiejś zmiennej odczytujesz 5 bitów Np: A As bite Do A=PINB AND 31 Print A IF A=coś Then coś dalsze decyzje loop Pozdrawiam
W przypadku ATtiny2313 to będziesz musiał zrobić prowizoryczny przetwornik analogowo-cyfrowy na komparatorze procesora i mierzyć czas ładowania kondensatora zależny od pojemności kondensatora i rezystancji fotorezystora. Mając procesor z przetwornikiem analogowo-cyfrowym, możesz zrobić coś takiego jak niżej...wartości rezystora i potencjometru nie są...
Popraw kod umieszczając go w znaczniku kod bo Ci trochę nie wyszło.
Dawno Bascoma nie używałem ale to będzie coś takiego: On int0 czas 'przerwanie zewnetrze (wejście impulsów) do czestotliwosc=1/czas 'obliczenie czestotliwosci z czasu pomiedzy impulasmi loop czas: stop timer0 'zatrzymaj timer czas=timer0 'odczyt z timera timer0=0 'wyzerowanie timera start timer0 'ponowne uruchomienie timera return Oczywiście...
Witam ! Jeśli masz problemy z zaprogramowaniem AT89C2051 to kup AT89S2051, zaprogramować go można tak jak ATtiny2313 po ISP. Pozdrawiam. Stefan
Ten programik u mnie kompiluje się bez błędu, używam pełnej wersji BASCOM'a 2.0.7.4. Istnieje możliwość że masz uszkodzone pliki LIB, spróbuj zainstalować Bascom'a na nowo.
Do if Pin = 0 then incr Zmienna_Pomocnicza if Zmienna_Pomocnicza > 2 then Zmienna_Pomocnicza = 0 if Zmienna_Pomocnicza = 0 then Wyslij kod 13 if Zmienna_Pomocnicza = 1 then Wyslij kod 14 if Zmienna_Pomocnicza = 2 then Wyslij kod 15 Bitwait Pin, set end if Loop To taki prosty programik na kolanie napisany. W miejsce Pin wstawic nazwe pinu do ktorego...
A może wyłumaczyć mi ktoś tak jaśniej niż whelpie bascoma ;) co to jest ten prescaler i co on dzieli. Może tak po kolei jak twój program widnieje: 1. Jeżeli PORTB jest przeznaczony do obsługi LCD to nie konfiguruj go w ogóle w stylu jaki podałeś w pierwszym poście. Config Portb = &B11111111 : Portb = &B11111111 ===> źle!!! Może to powodowac zakłócenia...
No cóż. Nikt nie jest perfekcyjny. Nie pamiętam jak to się pisze, bo IDE sam poprawia skladnię. Akurat w przypadku Elseif tego nie zrobi, bo ta funkcja skada się z dwóch występujących. No ale dzięki temu była lekcja wyłapywania błędów w kodzie :)
Witam, Na własne potrzeby chciałem zbudować monitor temperatury z 4 dallasami 18B20. Dane są odczytywane z czujników po RS485 i wysyłane do mastera. Kiedy odpytuję czujniki po kolei, muszę czekać standardowe 750ms na odpowiedź każdego z nich, co nie zadowala mnie. Zależy mi na tym, aby po wysłaniu komendy odpytującej, każdy z czujników bezzwłocznie...
1. Daj sprawdzanie szyfru w pętli bo zajeździsz BASCOM'a tak długim warunkiem ;-) [syntax=BASCOM] Valid = 1 For Index = 1 to 8 If Kod(Index) <> Szyfr(Index) then Valid = 0 Exit For End If Next Index [/syntax] 2. Zamiast Goto Alarmowanie powinno być Gosub Alarmowanie ponieważ Alarm = 0 nigdy nie zostanie wykonane.
sam bascom posiada nie mało przykładowych programów przetestuj je
Wyświetlacz LCD ma być nad czterocyfrowym wyświetlaczem LED, z nie poza płytką. Nie możesz sugerować się rys. 3.1 na stronie 56, bo jest to tylko schemat ideowy. Powinien być zamontowny zgodnie z rys. 3.2 na stronie 57, a więc cały wyświetlacz LCD znajduje się w obrębie płytki testowej nad czterocyfrowym wyświetlaczem LED, a więc go zasłania. Na rysunku...
Aaaa, bo tylko założyciele tematu to widzą... nie ma sprawy :-)
Pewnie, że można zastosować tylko trzeba dodać rezystor do bazy. Dowolny NPN tylko odpowiedniej mocy w stosunku do prądu jaki pobiera silnik.
Fusebit C-ma być disabled.
[syntax=basic4gl] $crystal = 4000000 Config Portb = &B11111111 Portb = &B11111111 Config Portd = &B1111100 Portd = &B1111111 Config Timer0 = Timer , Prescale = 64 Enable Timer0 Enable Interrupts On Timer0 Co1ms Dim Liczba As Single Dim Ktorywysw As Bit Dim Lol As Byte Dim Jednostki As Byte Dim Dziesiatki As Byte Dim Pomoc As Bit Dim Aaa As Word Dim...
Tak.
tak, na początku dodaj jeszcze Set Portd.4 : Set Portd.3 co załączy podciąganie na tych liniach
Nie bawiłem się ATtiny2313, ale jeśli ma PWM to da się zrobić jakieś odtwarzanie dźwięku z próbek. Robiłem takie coś na ATmega128. Puszczasz generator PWM na najwyższej częstotliwości i jakiś timer do generowania przerwania okresowo. Timer determinuje częstotliwość prókowania. Podczas każdego przerwania timera wpisujesz nową próbkę do rejestru generatora...
Napisz jakiś prosty program(Uart) który będzie korzystał z tego pinu i sprawdź czy zadziała bo bascom w paru miejscach jest niedopracowany
Witam Musisz skonfigurować Timer i za jego pomocą odliczyć 4 minuty. $Crystal = 11059200 Config Timer1 = Timer, Prescale = 1024 Load Timer1 , 10800 On Timer1 Sekunda Config Pind.1 = Output : Wy Alias Portd.1 Config Pind.2 = Input : We Alias Portd.2 Dim Licznik_1 As Byte Dim Wsk As Bit Enable Timer1 Enable Interrupts Licznik_1=0 Wsk = 0 Do If...
Nie wiem czy przypadkiem podczas resetu procesor nie ustawia portów na wysoki stan , musiałbyś w pdf-ie sprawdzić , bo przy starych 51 chyba tak było.
Z tym, że tablice musiałbym wcześniej wpisać w program, a mi chodzi o to, by "uczyć" tego robota danego zadania. Jeśli zmieniłbym odległośc punktu A od B i znowu postawił przeszkode, w którą by robot uderzył, to wtedy ponownie musiałby zapamiętać nową trase. Przy czym jeśli działałbym w obrębie pamięci RAM, kasowałbym ją po prostu resetem zasilania....
Ehh. Ustaw fusebity.
' Na początku kodu Index_tab=0 ...... ...... If Licznik = 1200 Then IF Index_tab=3 Then ' przesuniecie w tył jeżeli pozyskano co najmniej 3 pomiary Pomiar(1)=Pomiar(2) Pomiar(2)=Pomiar(3) Else ' Fragment kodu wykonywany dla Index_tab=0,1 i 2 Incr Index_tab IF Index_tab>3 Then Index_tab=3 End If Pomiar(index_tab)...
Człowieku MYŚLEĆ! Co to wymyślać? Weźże tyknij ten knefel zaprogramuj i zobacz czy działa, to taka filozofia?:/
Zmień to: $regfile = "2313def.dat" na to: $regfile = "attiny2313.dat" i obserwuj rezultat :)
Mam pewien pomysł na optymalizację dużej ilości np danych tekstowych kosztem SRAMu Zamiast trzymać testy we flashu można by było je tworzyć z danych, a we flashu jedynie trzymać dane wszystkich liter i cyfr. Kiedy byłby potrzebny jakiś tekst byłby tworzony przy pomocy danych zapisanych w array. Jak myślicie dało by to jakiś efekt ? Jeśli chcesz je...
'Atmega8 $regfile = "m8def.dat" $crystal = 8000000 . Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config Clock = Soft Enable Interrupts Time$ = "00:00:00" Do Lcd Time$ Wait 1 Loop End 'i juz masz zegarek Dopisz do tego zmienne pomocnicze...
Witam ! Zmień zapis na ten: Stan_enk = Encoder(pind.2 , Pind.3 , Lewo , Prawo , 0)
A czy jest inna metoda sterowania? Spróbuj takiej na przykład: pulseout ' w podobnej pętli For/ next e marcus Dodałem SYNTAX - bo pewnie rano się spieszyłeś :-)
Użyj lowerline :)
Najpierw sprawdź przejściówkę. Zewrzyj 2 i 3 pin. Kiedy będziesz wklepywał coś na klawiaturze kiedy otwarty będzie Terminal to w jego oknie pojawiać sie powinny kolejne znaki. W terminalu widać tylko to co do nas wraca. Normalnie za Echo pracuje mikrokontroler /lub nie jeśli sobie nie życzymy. Kiedy zewrzesz 2 z 3 to to co wyślesz powinno do Ciebie...
Spróbuj zrobić tak Co4ms: 'procedura obsługi przerwania od Timera T/C0 wykonywana co 4ms Timer0 = 6 'załaduj do Timera0, żeby zliczył 250 (=256-6) impulsów Incr Licznik If Licznik = 6 Then 'zmienna Licznik liczy do 6 aby Licznik = 0 'sprawdzanie stanu przycisku następowało If Pind.0 = 0 Then 'co ok.24ms If Pomoc = 1 Then 'jeśli zmienna Pomoc...
Zainstalowałem ten MkavrCalculator ale pojawia mi sie jakiś błąd źle wgranego avr dude. . A pisałem żebyś poczytał na tej stronce i obejrzał filmik video, tam jest pokazane jak z zakładki "Ustawienia" tego programu można zainstalować prawidłowo avrdude w 5 sekund. No ale masz rację bez poczytania to się nic nie zrobi.
Witam ! Tu jest błąd: portb = 1111111 ma być: portb = &B1111111
Kod podczerwieni będzie wyświetlany w bascom-avr \ terminal emulator ? Tak, jeżeli program napiszesz prawidłowo i dobrze skonfigurujesz BASCOM'a
Co to jest wogóle za wypowiedź ! Czy ja zadałem pytanie o cały program czy tylko przerwania, pozatym bez deklaracji zegara i kontrolera programy działają, bo jest to wybrane w opcjach programu BASCOM. .... a co to jest za odpowiedź! po pierwsze jeśli nie nauczysz się deklarować pewnych rzeczy jak np typ procesora i inne, na które tutaj ludzie zwracają...
Witam Wkleję Ci przykładowy kod, reszta należy do Ciebie. $crystal = 4000000 $regfile = "m8def.dat" ' np. ATMEGA8 :) Config Lcd = 16 * 2 ' definiuje jaki wyświetlacz ma być podlączony Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.4 , Db6 = Portd.3 , Db7 = Portd.2 , E = Portd.6 , Rs = Portd.7 ' podlączenie wyświetlacza do kontrolera...
Chwilowo straciłem ten kod postaram się go znaleźć ale opierałem się na projektach z internetu. No bez jaj. Na 99% nic nie masz tylko czekasz na gotowca. Ale dobra, zlituję się na święta :D Pomijając całą beznadziejność kodu do multipleksowania wyświetlacza, takie coś powinno działać: $regfile = "ATTiny2313.dat" $crystal = 8000000 Dim Jednosci...
Witam, miałem ten sam problem. Prawdopodobnie wykonujesz projekt wedlug mikroprocesorowej oslej laczki. Nie sprawdzalem tego jak jest w AT902313 na bazie ktorego pisany byl kurs(dziwne że nic o tym nie pisza w kursie) ale w Attinie faktycznie musisz przestawic fusebity bo domyslnie masz taktowanie 1MHz. W bascomie robi sie to bardzo prosto:Program-->send...
Jest tak jak mówią (na 99%). Ten BASCOM nie obsługuje dobrze ATTiny2313. Da się to zrobić wstawkami asemblerowymi, ale jako że dopiero się uczysz a zaczynasz od BASCOMa to nie będę Ci mącił. Po prostu ściągnij nowszego BASCOMa. Po za tym na pierwszy rzut oka w kodzie brakuje ustawiania OC1A jako wyjścia: DDRB.3 = 1 Dodano po 7 A: On Compare1 Wpis Nosave...
Do odczytu stanu portu służy rejestr PIN. Czyli masz źle zrealizowane warunki w funkcji przerwania.
Witam ! Moim zdaniem aby nie przestawiać Fusebitów wystarczy linię w pliku BAS $crystal = 4000000 zmienić na: $crystal = 1000000 Pozdrawiam. Stefan W sumie masz racje, jeszcze coś namiesza. Ale teraz kolega się chociaż dowie, że nie jest obojętne jakie są fusebity.
Pobierz nową wersję B-AVR 1.11.8.1. http://mcselec.com/index.php?option=com_... Tam jest ten procesor. Będziesz miał problem rozwiązany a zarazem nowszy program. Wszystkiego dobrego w Nowym 2006 roku.
U mnie zarówno w symulacji, jak i w realnym układzie program działa. Jedyne róźnice to najnowszy BASCOM-AVR, ATTiny2313 taktowany 4MHz, inny czas Waitms by zauważyć co i jak się dzieje. Program + HEX + BIN + SIM + cała reszta w załączniku. A teraz premiera. Trzy dolnie segmenty wyświetlacza to trzy kanały PWM: OC1A, OC1B, OC0A. Led RGB podłączona rówolegle...
Zgadza się.
Na początek do rysowania schematów są odpowiednie programy a nie Paint , kody programu umieszcza się korzystając z polecenia Syntax a nie wkleja zrzut . Schemat : brak jakichkolwiek kondensatorów do filtracji zasilania , brak GND dla uC , brak oporników ograniczających prąd diod jeden wspólny to żadna oszczędność max prąd portu to 20mA , czerwone LED...
No i pojawia się problem, przy histerezie 30 jest wartością min, kiedy led świeci się na zielono. Niestety program nie reaguje nawet na zmianę kondensatora.. Troche dziwne.... W zasadzie twój code pokrywa się z przykładem podanym przez "kimmi" w : http://www.mcselec.com/index2.php?option... (login to see...
maximus - cls nie ma tu NIC do rzeczy bo nawet LCD nie używasz. Podejrzewam że program wywala ci się na deklaracji SUB, tym bardziej że używasz debounce jako GOTO a nie GOSUB, i potem próbujesz wracać returnem. No i SUB, a GOSUB to nie to samo :-) Zrób test - program powinien ci się wywalić gdy wciśniesz któryś z 2 przycisków, natomiast RC5 powinno...
Może zaczniesz od czegoś łatwiejszego , będzie prościej i mniej stresująco . No, nie żartuj z faceta!. Co może byc łatwiesze (?) ? miganie diodą ?... Spójrz na jego ?credentials? w lewym oknie. Gośc jest tu około 10 lat, więc pewne rozeznanie w temacie posiada i ?kurs? z miganiem diodą z pewnością dawno ukończył. Może potrzebuje troche odmiennego spojrzenia...
Pisałem abyś wszystkie diody LED połączył przez rezystory do +5V , a Ty tego nie zrobiłeś ? Mam rację ? Dziękuję za 10, nie trzeba było. GG6293398
Strona 132 PDF-a od attiny2313, rejestr UCSRC bity 5 i 4 [syntax=basic4gl] 'Odd Ucsrc.5 = 1 Ucsrc.4 = 1 'Even Ucsrc.5 = 1 Ucsrc.4 = 0 [/syntax]
Witam. (Buduję czujnik odbiciowy) Mam duży problem dotyczący generowania 36kHz i podania tej częstotliwości na diodę IR, aby TSOP1736 odebrał sygnały. ATTiny2313 pracuje na kwarcu 4MHz z kondensatorami 27pF. Dioda podłączona jest do uC katodą przez rezystor 220(Ohm) i potencjometr 1k(Ohm). Dioda świeci, sprawdzałem to aparatem cyfrowym. Napisałem taki...
Ta biblioteka była swego czasu dołączona na płycie Elektroniki Praktycznej wydania specjalnego o Bascomie
http://obrazki.elektroda.pl/8609137500_1... Witam, przedstawiony układ umożliwia: -pomiar zarówno dodatnich, jak i ujemnych temperatur, -wybór jednej z dwóch częstotliwości powtarzania pomiaru, -pamiętanie najniższej temperatury (wyświetlanie po wciśnięciu przycisku, kasowanie po resecie uC), -prezentację wyniku na 4-cyfrowym wyświetlaczu...
attiny2313 bascom attiny2313 bascom fusebity attiny2313 projekt bascom
tablet zamiast nawigacji klimatyzacja ciepły silnik lenovo sterownik kontroler sieci
Pralka do 2600 zł: oszczędna i bezawaryjna - Bosch, Samsung, LG, Electrolux Termet Silver Pro: Ciągła praca pompki z regulatorem pokojowym