... Adres musi być dobry skoro zapala diody i gasi lecz odczyt daje wynik 255 A czy ja napisałem, że masz zły adres :?: Powtarzam, przed wysłaniem adresu do odczytu, użyj sekwencji START lub REPEAT START.
DZIĘKI za dokładne opisanie :) A czy mógłbyś mi napisać dlaczego PIND =&B00100000 =32 ? Skąd te 32, czy to był tylko przykład, czy faktycznie po wpisaniu jakiejś formuły stan poszczególnych bitów przelicza się na jakąś tam wartość, w tym przypadku 32? To nie są przypadkowo wybrane liczby! Jedynie przykładowo został wybrany numer portu (B.5) albo (D.5)...
Myślę że bardziej poprawnie już się nie da, o ile potrzebujesz w dalszych działaniach wszystkich 5 bitów na raz. Jeśli nie, to można po prostu w stosownym czasie odczytać pojedynczy bit.
Nie wiem dokładnie co chcesz uzyskać. Jeśli binarnie to np. dla portu P3 odczytujesz piny: P3.4 ; P3.5 ; P3.6 i P3.7 (to cztery starsze bity) Jeśli dziesiętnie to trzeba to przekonwertować z Bin na Dec
Odczytać musisz cały port B a potem zerować 3 najstarsze bity bo one mogą powodować zamieszanie. Zmienna oczywiście bajtowa. porównujesz potem zmienną z konkretnymi wartościami. Czyli masz 16 warunków sprawdzających jaki klawisz został wciśnięty.
instrukcja Pinx.y służy do odczytu stanu portu natomiast Portx.y do ustawienia stanu na porcie
W zasadzie tak, ale można też programowo zrealizować port dwukierunkowy (poprzez modyfikację rejestru DDRx), czyli np. po wysłaniu jakiejś danej z linii portu B, te same linie przechodzą w stan odczytu.. :)
mowimy o porcie C tak ? "JTAG Interface and On-chip Debug System" oczywiscie wylaczony ?
Przykład z pliku Help Bascoma: " 'configure PORT D for input mode Config Portd = Input 'reading the PORT, will read the latch, that is the value 'you have written to the PORT. 'This is not the same as reading the logical values on the pins! 'When you want to know the logical state of the attached hardware, 'you MUST use the PIN register. A = Pind U...
Do odczytu stanu portu służy rejestr PIN. Czyli masz źle zrealizowane warunki w funkcji przerwania.
Progisp był po prostu uszkodzony, pobrałem z innego źródła i poszło, ale bascom dalej nic. Sterowniki raczej są dobre, bo progisp wykrywa od razu podłączenie programatora do portu usb.
Witam. Mam problem ponieważ niewiem jak to zrobić :/. W ostateczności moze być z jednego portu ale żeby można było "nazwać" temperatury np. "Na zewnatrz" mam taki program ale wyświetla temp w osobnych liniach i zawsze nazwa "temp:' Prosze o pomoć bo zupełnie niewiem jak to zrealizować. :( w załączniku program Pozdrawiam
Procek Atmega 16, JTAG wyłączony,adres/dane podłączone pod portd a w porciec CS=portc.0 , ALE=portc.1 , R/W=portc.2 , DS=portc.3 poprawiłem część kodu Portc = 12 Portd = &B00000000 <- jeżeli wyzeruję wcześniej to już mi adres nie wraca Ddrd = &B00000000 Dana = Pind Natomiast dziwi mnie fakt że nie działa z avr'em.Jeżeli ręcznie podaję 1 na...
Kolego, układy AVR mają nogę podłączoną do kilku rejestów. Pisząc słowo PIN konfigurujemy rejestry wejściowe, a słowo PORT rejestry wyjściowe. Chodzi tu o składnie języka Bascom. Ta informacja jest oczywiście niedokładna , a sama interpretacja błędna (!). Pisząc 'config ...' w efekcie edytujesz rejestr DDRx odpowiedniego portu x. Nie jest ważne czy...
Zapomniałem dopisać że robiłem CONFIG PORTy i też lipa...
a ten pull-up to po prostu przypisać do portu jedynki ??
Na porcie D.6 i D.7 masz zworkę, w sensie zwarcie jednego lub drugiego do masy przestawia program w tryb odczytu jednego lub drugiego rodzaju czujnika.
Mam pytanie : Czy w bascomie AVR piny portów AVR w przypadku odczytu z nich danych trzeba nazywac : Pind.3, Pina.1 itd???
W AVR'ach porty są synchronizowane, a więc można odczytywać z nich dane po czasie wymaganym na synchronizację. Jest to czas rzędu jednego czy dwóch cykli maszynowych, a więc przy zegarze 1MHz, jest to 1 - 2 us. Ale w żadnym stopniu nie będzie to 40 us (no chyba, że masz tak wolny zegar). Atmel zaleca wstawienie jednej instrukcji NOP pomiędzy ustawianiem,...
Tak, XMEGA chodzi max do 3,6 V, niemniej dzięki DMA można pobrać stan portu w ciągu 1-4 taktów, co dla zegara 32 MHz przekłada się na mniej niż 160 ns, w dodatku całkowicie sprzętowo, bez udziału MCU.
Witam, Do wejść Portu mam podłączone 5 odbiorników zbliżeniowych. Odczytują zagłębienia w tarczy kodowej. Niestety nie są one uporządkowane tzn bit0 na tarczy jest przypisany do PORTx.4 a bit1 do PORTx.2 itd Próbowałem wcisnąć do zmiennej typu string *6 odczyt z poszczególnych czujników Inaczej mówiąc, potrzebujesz przemapowac pojedyncze bity po ich...
To już załatwia bascom - jest ustawione na Auto. co do sedna, sprawdziłem dziś na swoim układzie kanały 0-7 ADC następującym programem: [syntax=basic4gl] $regfile = "m2560def.dat" $crystal = 16000000 Config Adc = Single , Prescaler = Auto , Reference = Avcc Dim Wart_adc1 As Word Dim Wart_adc2 As Word Start Adc 'AVCC bezpośrednio do 5V, AREF w powietrzu,...
Musisz przyjąć że pin normalnie jest wyjściem i steruje diodą. Co jakiś czas zapamiętujesz stan wyjścia, przełączasz na wejście, odczekujesz moment na ustabilizowanie się stanu na wejściu i pobierasz stan wejścia a następnie przełączasz port na wyjście i odtwarzasz jego stan z przed odczytu stanu przycisku.
Nigdy nie korzystałem z Getkbd, bo nie miałem takiej potrzeby, ale nie sądzę aby nie można było skorzystać z tej instrukcji w przerwaniu. W końcu nie są tu angażowane żadne timery, ani zaplanowane opóźnienia - po prostu zapis do portów i odczyt.
Olbrzymia większość HARDWAROWYCH pinów nie zachowuje się jak komórki w RAM, a odczyt pinów ustawionych w wyjscie może dać nieokreślone wyniki Nie mówisz co i jak, ale sądzę już u podstaw jest zła idea. Przełączanie musi umieć algorytm sam w sobie, w oparciu o zmienne, i to dopiero odnosić na porty wyjściowe
Czyli przesuwająca się linijka jak rozumiem... poczytaj o instrukcji Shift, bo na temat odczytu portu (przyjmowaniu impulsów) napisano już na forum wiele.
Witam Zastanawiam sie jak napisac w bascomie procedure odczytu pamieci 24C256 tak aby kazde odczytane 8 bitow było wyprowadzone na dowolny port (np.p1), tak zeby kazdy bit był reprezentowany przez pin portu.
Może jeszcze nie do utylizacji. Bascom najlepiej współpracuje z programatorem STK200. Albo z takim na drutach i opornikach- chyba simple się nazywa. Z portu LPT obydwa. Jak masz LPT to zamów STK200 albo zrób.
Witam! Ja zwykle robię od razu tak: [syntax=basic4gl]Config portd = &b00001111 Portd = &b11110000[/syntax] W ten sposób łączę konfig i ustawienie pullup . W języku BASIC nie zaleca się oddzielania instrukcji dwukropkiem, zamiast: [syntax=basic4gl]If Pg = 0 Then Kier = 0 : Gosub Ruch_key End If[/syntax] Lepiej zapisać tak: [syntax=basic4gl]If Pg = 0...
Witam Nie znam schematu dlatego trudno mi jest powiedzieć czy program jest napisany dobrze. Być może jest tam klawiatura matrycowa i obsługuje się ja nieco inaczej niż klawisz podpięty pod port. Druga sprawa to deklaracja portu na początku programu. Najpierw deklarujesz cały port jako wejście a następnie deklarujesz każdy pin z portu C osobno. Tak być...
avr'y mają programowalne piny wejścia/wyjścia, posiadają tranzystor zwierający do zasilania/masy (port jako wyjście) oraz otwarty kolektor/pull-up (port jako wejście). całość się prezentuje tak: DDRx = 0; PORTx = 0 to pin jest zwierany do masy DDRx = 0; PORTx = 1 to pin jest zwierany do zasilania DDRx = 1; PORTx = 0 to pin jest typu otwarty kolektor...
Nie znam się na bascomie, ale nie widzę żebyś gdzieś użył metodę "debounce". A, i jeśli się nie mylę, to odczytywać powinieneś z "Pina", a nie z "Porta". A w linii z If wykonujesz odczyt z portu, a nie zapis do niego.
A spróbuj tak: Odczyt=Temp Dim Jednostki As Byte , Dziesiatki As Byte ' cyfry do wyświetlania temperatury Dim Temp As Byte ' temperatura Dim Pompka As Bit ' sterowanie pompką Dim Odczyt As Byte Dim Cyfrybcd As Byte Dim Ktorywysw As Bit Enable Interrupts ' oblokuj przerwania Enable Timer0 'odblokuj timer0 Enable Timer1 'oblokuj timer1 Config Timer0 =...
... Problem błahy, ale rozkładam ręce, pewnie zapomniałem o jakiejś oczywistej rzeczy ... Witam Tak, problem jest błahy i wynika ze specyficznego sposobu konfigurowania portów w bascom-ie. O ile instrukcje: Config Pinc.2 = Output Config Portc.2 = Output dają równoważne wyniki (chociaż poprawny zapis w/g helpa to PINx.y dla konfiguracji pojedynczego...
O ile dobrze zrozumiałem idee to cyklicznie negujesz wartość poprzednio wpisną do portu. Nie znam AVR ale może to być taki przypadek jak w 51 , Ustawianie portu polega na wpisaniu wartości do rejestru, ale odczyt następuje z pinów procka. Podciągając lub nie pin rezystorem do +Vcc a sterując zerem, to nawet ustawienie pinu na zero przy odczycie zwróci...
Witam Dokonałem tej zmiany i także wyrzuciłem zmienna S na Lcd i dalej program nie działa tak jak bym chciał. ................ Jest ok zmieniłem znak ''<" i działa . Do swojej podstawki programującej mam podłączone 2 przyciski do pin d.0 pierwszy do pind.1 drugi gdybym chciał zmieniać progi załączania pind.7 tymi przyciskami (czyli regulować temperaturę...
Pierwsza rzecz o którą mi chodzi to czy można odczytać stan całego portu za pomocą PINx? np. IF PINB = &B00000001 THEN Tak, można. Druga sprawa jeśli np. jeden z tych pinów jest ustawiony jako wyjście to jaką wartość będzie miał dany bit przy odczycie? Nie ma znaczenia czy jest jako wyjście czy jako wejście. Odczytując rejestry PINx odczytujemy aktualny...
Witam. Dobrze zrozumiałeś - jeśli raz, na przykład podczas inicjalizacji, ustawisz port na 255, to będzie on zawsze portem wejściowym. Właściwie w takim przypadku nie musisz tego robić, bo po resecie procka wszystkie piny portów ustawiają się na 1. Ale czasem wykorzystuje się ten sam pin jako wejście i wyjście. W takim przypadku zawsze przed odczytem...
Jak sie nie myle przez terminal leca znaki w zmiennych typu string. To powinno ci pomoc dalej
Nie masz wyjścia, jak zacząć bawić się AVRStudio ... :D Bascom potrzebuje SRAM-u, którego ten procek nie posiada... A kodzik, proszę bardzo, ale za jego kompatybilność z Bas-monster nie odpowiadam ;) : #include "m8515def.inc" ; Prohibits use of non-implemented instructions (ATmega8515) .cseg ;—————R...
Dobrze dzięki za wszystko jednak po kilku dniach zmagań i poszukiwań odnalazłem problem otóż żaden z 10 pilotów jakie posiadałem nie nadaje w kodzie rc5 :/ jest to rzecz której się najmniej spodziewałem jednak zbudowałem nadajnik(pilot) na atmedze8 z kwarcem 8Mhz i nadawanie jak i odbiór wyszedł wspaniale a i obornik możne być podłączony do każdego...
mala szansa aby w kilku postach zrobic Ci wyklad ale jak masz 12 linii adresowych tj A0-A11 to wszystkie koncowki musza byc podlaczone w Twoim przypadku najlepiej do portow obu Atmeg czyli w praktyce 2 porty do tego zuzyjesz a 3 do danych jesli chcesz wykorzystac pojedyncze piny danych to tez musisz "zuzyc wszystkie 12 adresow , bez bramek czy dodatkowych...
Dziękuje za zainteresowanie. Udało się, wszystko chodzi na atmega8 . Niestety w przypadku Atmega168 to nie działa. Co może być nie tak? Nap. referencyjne jest ustawione na wewnętrzne i zastosowany dzielnik rezystorowy. Korzystam z portu PINC.0 Pozdrawiam
Chcę zaprogramować mikrokontroler ATmega8 tak, żeby można było odczytać przesunięcie myszy PS2. Wiem, że mikrokontroler posiada wbudowany UART, ale nie znam standardu PS2 (nie licząc podłączenia do komputera). Proszę o pomoc: jak podłączyć PS2 do wejść UART oraz jak odczytać dane o przesunięciu myszy (jaki format danych, szybkość transmisji itd.) oraz...
Jestem początkujący więc proszę o wyrozumiałość. Mam pytanie: czy w Bascomie można odczytać, lub zmienić wartość pojedynczego bitu zmiennej, tak jak w przypadku np rejestrów I/O?. Przykład: W przypadku portów I/O np. w procku można odczytać stan pojedynczej końcówki portu za pomocą zapisu. Portd.3, Portb.6 itp. Czy w przypadku zmiennej można odczytać...
pcf-y z literka A na koncu maje inny adres trzeba wtedy "odchaczyc odpowiedniego ptaszka" w bascomie,moze to.
Jak masz klawiaturę podłączoną do portu C to nie będzie działać. Powodem jest standardowo uruchomiony J-TAG. Spróbuj z inną końcówką wyzwalającą przerwanie.
Atmega8 ma przetwornik ADC na Porcie C, natomiast Attiny25 ma ADC na Porcie B który deklarujesz jako wyjście i tu może być problem. Internal_2.56_extcap Czy w związku z tym na AREF masz podłączony kondensator do masy? Tak w ogóle to daj schematy, bo Atmega8 i Attiny25 to dwa różne układy więc napisanie że są tak samo podłączone jest mylące i błędne.
Załaczam kod, który działa. odbiera dane z portu szeregowego i wyswietla je w MsgBox(). Zwróć jedynie uwagę na zdarzenieSerialPort1_DataReceived. Zmień w nim ilośc bajtów po której mają zostać odczytane dane z BUFORA portu szeregowego. Początkowo bowiem dane trafiają do bufora (każdy bajt oddzielnie wywołuje przerwanie i trafia do bufora) a stamtąd...
Pozmieniałem sporo w programie. Zastosowałem się do sugestii skrócenia głównej pętli teraz praktycznie jest bardzo krótka a na końcu ma instrukcję waitms 400. Zauważyłem że program jest bardzo wrażliwy na długość głównej pętli gdy tylko znalazła się jedna linijka za dużo program odczytywał tylko wartość sekund z PCF8563P. Stosy ustawiłem na 128 a i...
Po pobieżnym przyjrzeniu się programowi nasuwają mi się takie wnioski. 1. Zadeklarowałeś wejścia, ale zostawiłeś je jako "pływające". Powinieneś port-y przycisków podciągnąć do plusa, czyli ustwić stan wysoki =1 2. Nie widzę deklaracji dla magistrali 1wire dla DS-ów i całej procedury odczytu i zapisu danych do pamięci. Być może to celowe na tym etapie,...
ok, tylko najpierw uporam się z przyciskami i nastawami :P Dodano po 28 $regfile = "m8def.dat" $crystal = 8000000 Config Portd = Output 'podłaczony wyświetlacz 'Config Pinb.0 = Output ' anoda 1 źle! nazwa pin służy do odczytu wartości 'Config Pinb.1 = Output 'anoda 2 źle! aby ustawić należy się posłużyć nazwą Portb.x 'Config Pinb.2 = Input...
no tak zewnetrznej pamieci ale ramu i to na tym porcie co mam lcd
Czyli ty nie chcesz skanować klawiatury a zrobić sterownik tej klawiatury ze jak wciśniesz cos tam to się na LCD pojawi jakiś text tak ?? Jeśli tak to sprawa jest banalna. Masz załóżmy KB 4x4 PortX.0 do portX.3 wyjścia PortX .4 do PortX.7 wejścia (rejestry pin). I np. dim klawisz as byte set portX.0 reset portX.1 reset portX.2 reset portX.3 If PinX.4=1...
bo w prockach avr do odczytu stanu sluzy rejestr pin a nie port. powienies napisac W=pind
martin20023, wg kodu masz MOD i SHD wpięte w działający port szeregowy.
Takie problemy były już na elektrodzie. Możesz zrobić tak jak napisał przedmówca. Przycisk od portu do masy, poprzez set port podciągasz wejście do "+" i masz cały czas stan wysoki, po wciśnięciu sciąga go do masy i masz stan niski. Jeśli masz przycisk między portem a "+" to musisz go podciągnąć do masy dodatkowym rezystorem, bo nie ma wewnętrznego...
Siemka! Nie ma większego problemu i z paroma czujnikami. Rozwiązania tego problemu są conajmniej dwa. 1. Wrzucasz czujniki każdy na innym pinie portu mikrokontrolera i odczytujesz wynik korzystając właśnie z algorytmu dla jednego czujnika. Jedyna kwestia to tylko sekwencyjne przełączanie interface'u 1-Wire pomiędzy połączonymi z czujnikami pinami portu....
Przez przypadek. Czysty przypadek. Sam pamiętam, jak kiedyś zapomniałem w ogóle włączyć podciągania (zakomentowała mi się w C o jedna linijka za dużo) i też część przycisków działała poprawnie, a część nie. Ale to są już zagadki elektroniki analogowej i fizyki, a konkretnie ładunków jakie gromadzą się na ścieżkach/kablach w momencie odczytu pinu.
Dodaj sobie dodatkową zmienną do której będziesz wpisywał wartość odpowiadającą twojemu rotate. Robisz odczyt i teraz wiesz w którą stronę ma się odbywać rotacja.
Przetestowałem wszystkie powyżej wspomniane opcje i nadal nic. Odczyt dokonywany jest tylko jeden raz po włączeniu zasilania mikrokontrolera, później nie ma reakcji na zmianę stanu pinów portu B. A przecież zarówno ADC jak i presostat muszą być kontrolowane w wielu miejscach w programie.
Po pierwsze to zajrzyj do pdf'a odbiornika IR, bo na Twoim schemacie brakuje konda i rezystora przy podłączeniu TSOP'a. http://pdf1.alldatasheet.com/datasheet-p... Ma być w programie: Wygaszacz (godzina + temperatura), - Czasomierz najprościej na programowym RTC: str. 244 w książce Wiązni, zaś temperatura - str. 293. Wszystko...
kolego tylu ludzi już pisało abyś wypróbował PonyProg'a albo inny podobny program żeby przekonać się gdzie leży błąd. Nie mów, że to taka tragedia nauczyć się obsługi tych inny prostych programów, które służą tylko do programowania procków i nie mają wbudowanych kompilatorów jak Bascom. Nie próbuj robic tego przez AVR Studio bo to całkiem inna bajka....
Tak, jest kilka np. odczyt całego portu z odpowiednią maską. Tylko co to jest maska - w BASCOMie tego nie napisali... I tu znowu - zacznij od zapoznania się z dokumenatcją techniczną mikroprocesora!
Hej! W Bascomie do odczytu portów z PCF8574 służy polecenie I2CReceive. W helpie wszystko jest ładnie opisane. Może ten programik ci się na coś przyda (oczywiście nazwy pinów dopasuj do swojego układziku): Config Sda = Porta.6 Config Scl = Porta.7 Dim A As Byte Dim B As String * 2 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3...
Data z pinu procesora na czujnik, drugi z VCC na nogę VCC czujnika i tak samo GND na nogę GND czujnika a 4 kabel szedł z pinu procesora z opornikiem 4,7K na VCC. Próbowałem też kabel z opornikiem, który jest podłączony na stałe do VCC podłączyć bezpośrednio na nogę DQ czujnika i było to samo. Chyba, że warunek jest taki żeby opornik był podłączony...
Witam :) Tak na wstępie brakuje mi działu dla piszących w C i ASM (będzie łatwiej coś znaleźć np szukam 2 DS18B20 i 99.9% wyników to bascom). Potrzebuję odczytać dane z co najmniej 2szt. DS18B20, problem polega na tym że jak adaptuje kod do odczytu 1 DS (z jednego portu) na odczyt 2 DS (z dwóch portów) to zamotałem się w funkcje zmieniające nr portu...
dzieki, z tym bitem CKOPT faktycznie jest tak. Kwarc ruszył. jesli chodzi o linie uart/spi to mam ją ustawioną w stan wysoki/uart. Tak czy siak- transmisja przy odczycie rejestru "CR" jest zawsze synchroniczna, udało mi się odczytać te bity, złapałem je na oscyloskopie. bieżacy problem jest taki: nie wiem jak zapisać te dane. Jak ma wyglądać bascomowa...
Ja używam innej konfiguracji portu bo też miałem problem i wszystko zadziałało Config Serialin = Buffered , Size = 100 , Bytematch = 10 ' bo telefon odpowiada 0D0A = 13 10 = ClLf Echo Off Config Input = Crlf , Echo = Crlf bytematch = 13 (0Dhex) nie jest dobrym pomysłem bo końcowy znak to 10 (0Ahex), spróbuj tak jak wyżej. Ważna jest też config input...
Ustawiasz pierwsze 4 piny np. portu C jako wyjścia, następnie wysyłasz na port C wartości od 0 do 15 i już masz 4-ro bitową szynę danych. Odczyt analogicznie.
Bo ja tez miałem ten problem... i okazało się że układ nie chciał działac ponieważ transmisja danych przebiegała w nieprawidłowy sposób (bity były odwrócone 1 - 0 i 0 - 1) A to wszystko dlatego że port COM komputera wysyła sygnał odwrócony bo na wyjsciu ma inveretra i ty tez musisz takiego dać żeby transmisja była prawidłowa... Pamietaj że na wyjsciu...
Witam, potrzebuje pomocy kogos kto pomoglby mi przy wstawce asemblerowej, caly program jest w BASCOM AVR a zalezy mi na szybkosci akurat przy funkcji zapisu i odczytu. A wiec tak ze wzgledu na uklad polaczen na plytce zamienilem linie portu: D7>D0 D6>D1 D5>D2 D4>D3 D3>D4 D2>D5 D1>D6 D0>D7 Zamieniony port to PB, zmienna z ktorej zapisuje/czytam to "Datlo"...
najprościej? bierzesz procek ATmega8 - szt.1 , progrmator STK200 - szt.1 (np z allegro za ok 15zł) , bierzesz BASCOM wersję demo (do zassania z netu www.mcselec.com) na PC i piszesz w nim program do obsługi tego rejestratora, w Bascomie będzie to dla ciebie chyba najmniejsza pestka. Jeśli chcesz się dowiedzieć jak pisać programy w Bascomie to kupujesz...
Zrób tak żeby ci się dioda nie spaliła: http://obrazki.elektroda.net/42_12592744... Natomiast żeby się "mocno świeciła" przy sterowaniu procesorem, to w programie zrób w pętli: - odczyt (kilka taktów procesora), - ustaw 0 na pinie i delay 500 czy 200 ms. ps. ustawianie rezystora pull-up na porcie jest zbędne, i tak ci dioda na nóżkę podaje napięcie...
Witam. Koledzy czy można podłączyć zegar PCF8583 do portu SPI procesora który obsługuje na tym porcie kartę pamięci? Jeśli się da to czy wystarczy na czas odczytu lub zapisu PCF-a konfigurować porty SCL SDA a później obsługiwać kartę pamięci. Czy trzeba ją będzie inicjować za każdym razem?
Dokładnie tak jest :| widoczne lekkie pełganie wyświetlacza ,zależy ono waitms 100,otóż jak użyje wait 1 czyli powtarzanie pętli głównej co 1s to wyświetlacz mrugnie raz na sekundę ,chodzi mi o to by się pozbyć tego mrugnięcia i mieć stabilny odczyt :D bo to z lekka denerwuje oko. Odczyt wyników z portów ADC muszę mieć co 100ms. Kolega dturczak wskazał...
nie, nie deklarowałem tego, jednak w helpe i w "programowanie mikrokontrolerow avr w języku bascom" nie ma tej deklaracji jest jedynie : config rc5 = pinX.X ale probowalem tez z konfiguracjami jako wejście, podciągałem port do góry, ale to też nic nie dawało
A zobacz w BASCOM czy działa jako Sample Electronics Programer Usuń połączenie między nogą 9 a 12 LPT. Zobacz jak masz usrawiony PONY.. I/O port setup przestaw na LPT i Avr ISP I/O jeśli dobrze pamiętam musisz sprawdzić. Ja zawsze sprawdzam komunikację procek-program przez odczyt "fus bit". http://obrazki.elektroda.net/87_12636588... http://obrazki.elektroda.net/76_12636589...
Sorry , postaram sie :) Porty to oczywiście : D.5 dla SCL i D.7 dla SDA
Na początku musisz ustalić stan rejestru DDRE. Ponieważ musisz zdefiniować w AVR czy pin pracuje jako wejście czy wyjście. dopiero po tym możesz zapisywać lub odczytywać dane z portu. W C wykorzystywane są także rózne komendy do odczytu i do zapisu. PORTX odpowiada za zapis a PINX za odczyt (X litera portu). Cała komplikacja wynika z budowy wewnetrznej...
Masz możliwość podłączenia się z portem RS pod procka, masz przejściówkę pod USB albo konwerter poziomu napięć do fizycznego portu? Bo coś mi się nie podoba odczyt z ADC a bez komunikacji z prockiem nic nie zdziałamy niestety. Ewentualnie masz może wyświetlacz LCD alfanumeryczny?
Mniej wiecej tak to mozna zrobic ;) Listing do AVR-a pozmieniaj nazwy portów '################# wyswietlanie temperatury ######################### Multiplex: Dim Mux As Byte Dim 100stopni As Integer Dim 10stopni As Integer Dim 1stopni As Integer Dim Dstopni As Integer Config Porta = &B11111111 Config Portc = &B11111111 T2 = Abs(t1) Porta = &B11111111...
spróbuj na innym porcie. np. w mega 32 trzeba wyłączyć interfejs ( w bezpiecznikach) żeby móc prawidłowo korzystać z portu C. i napisz co ci nie wychodzi? masz złe odczyty , wogóle ich nie masz? Jednym słowem zobacz co siedzi sprzętowo na tym porcie którego używasz i wyłącz to.
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...
if port = 0 then i tu co robi end if tak to wyglada w bascomie jesli masz klawisz do masy :)
Mam pewien problem z tym programatorem (to ten z EdW do BASCOM'a), otórz jak próbuję zapisać coś do procka (89C2051) to niby jest ok, ale jak go chce odczytać to są same FF, do tego jak próbuję wykryć procesor to podaje, że mam 1051 (a jest 2051). Podczas odczytu i zapisu zaświeca się dioda na programatorze. Używam programu Bascom-8051 DEMO Special...
[syntax=text]Po pierwsze - czy Porta = &B11111110 daje napewno w bascomie 0 na Porta.0 ? Nie jest odwrotnie? Może najstarsze bity są po prawej stronie? Spróbuj skorygować ten program wpisując Porta = &B00000000 [/syntax] Nie najmłodsze bity są po prawej stronie [syntax=text]może rzeczywiście Bascom coś tu świruje, bo zwykle rejestr Port służy do wpisywania...
Użyj tablicy. Najpierw ją uzupełniaj a po czasie odczytuj do portu. Odpowiedni jej rozmiar, umożliwi zapis i odczyt w jednej "pętli" i w kółko. Np. pod wskaźnikiem "i" zapisujesz a "i-10" odczytujesz. Potem po pętli robisz pauze (opóźnienie) i zwiększasz "i". Rozmiar tabeli to rozmiar twojego buforu.
Pomysł z tym programikiem jest dobry ale lepiej zrobić tak aby wykorzystać przerwanie od uart'u od danych przychodzacych. W obsłudze tego przerwania robimy taki myk że gdy przyjdzie znak "$" to niech sie zeruje licznik (wskaźnik pozycji) i każda nastepna dana z portu niech będzie zapisywana do nastepnej zmiennej. Potem można z tych zmiennych wyciągnąć...
Witam, Jeśli zasilanie płytki z procesorem masz z programatora na porcie LPT to odłącz je i spróbuj zasilić procesor z zewnętrznego źródła (bateria, zasilacz). Pozdrawiam
Nie ma bata. Z ds na 1wire i multiplexem led musi mignać. I nie słuchajcie zadnych zapewnień że "mi nie miga". Napewno miga. rygory czasowe w ds to są us (mikrosekundy) i nie ma takiej możliwości żeby bascom się wyrobił. Rozwiazanie? Zacząć stosować czujniki na I2C zamiast 1wire. Transmisja moze być całkowicie zatrzymana i nic to nie przeszkadza. Do...
Może to jest usbasp? Jedna zworka do zasilania z USB druga do spowalniania ISP (przynajmniej w usbasp tak jest). Nie pamiętam czy USBasp był wykrywany w komputerze jako port COM dodatkowy.
Odczytaj stan całego portu i zrzutuj na maskę (operator AND)
Przy konfiguracji jeśli wejście to pin, ale alias zawsze robię port. Zdarzało się, ze jeśli alias pin, to program nie działał.
Witam Mam problema z kostką pcf8575 (16bit I/O) No więc oczyt mam ale tylko 1 portu ale zapis ni huhu niewiem w czym tkwi błąd kod wyglada następująco: na początek deklaracje i2c ble ble ble :) potem... Sub Sendpcf1: I2cstart 'start I2csend &H40 , Addl1 I2csend &H40 , Addh1 I2creceive &H41 , Tmpz I2creceive &H41 , Tmpz2 Print "Na portach pcfa: " ; Tmpz...
Próbowałem kiedyś z ciekawości pisać w FastAvr lecz jak już po wielu trudach zmusiłem go do kompilacji to i tak prosty program nie chciał działać. Wybrałem ostatecznie Bascoma bo jeszcze mnie nie zawiódł. Termometry i wyświetlacze działają tam bez łaski. Wg mnie jak Basic to Bascom, a jak C to Win AVR.
W Bascomie do odczytu danej z pilota służy polecenie GetRC5. Zajrzyj do pomocy Bascoma na pewno znajdziesz to co potrzebujesz. Pomocne będzie również procedura configuracyjna Config do przypisania koncówki portu do której będzie podpięty czujnik podczerwieni. Szczegóły tych poleceń znajdziesz w pomocy jak również przykładowy program. A tak wogóle to...
To teraz 2 testy: 1. Przypisz dane z tablicy najpierw do zmiennej tymczasowej a potem wyślij zmienną tymczasową na portd 2. Poprzez Select Case Nr_Wysw na sztywno wyślij na port odpowiednią wartość dla konkretnego wyświetlacza (bez odczytu z tablicy)
W bascomie to pewnie jeszcze dłużej. Ale jest ryzyko. Wystarczy obejrzeć wygenerowany kod. I najwyżej dodać parę NOP-ów. Tak myślę, dlaczego po 8-smym cyklu miałoby się pojawić. Przecież to idzie w "powietrze"- nie ma ósmego tranzystora i wcale nie musi być "ciemno" Kiedy jest stan licznika 7, to na wyjściach 0 do 6 układu 7442 będzie stan wysoki....
Można zastosować maskowanie. Jako przykład fragment programu sprzed kilku lat: [syntax=basic4gl]'inicjakizacja modulu rozszerzen I2creceive &H70 , Io 'czyta stan wej/wyj PCF8574 Maskp = Io Or &B11000001 'selekcjonuje wszystkie trzy krancowki - baza, P6, P7 I2csend &H70 , Maskp 'przygotowuje porty wejsciowe do odczytu If L_ = 0 Then I2creceive &H70 ,...
odczyt portu rs232 odczyt portu szeregowego atmega8 odczyt portu
palet maszyna radio hitachi programatorem rt809f
żarówka szeregowo początkujący elektronicy
Schemat UPS40A-R6 - Gdzie znaleźć dokumentację? Czołówka - sygnał dźwiękowy słuchowiska dla dzieci z lat 60-tych