https://obrazki.elektroda.pl/9317464400_... Witam Przedstawiam stację meteo nad którą pracuję już kawałek czasu. Początek prac to też mój początek zabawy z Arduino. Zaczęło się od gotowego projektu malutkiej stacji z wyświetlaczem OLED. https://obrazki.elektroda.pl/5611267500_... Wtedy już samo wgranie programu do...
https://obrazki.elektroda.pl/7425086700_... Pokażę tu dwa praktyczne sposoby na pokonanie limitu długości odpowiedzi ostatnio bardzo popularnego ChatGPT. Oba sposoby są całkowicie darmowe, działają na publicznie dostępnym modelu oraz przede wszystkim sprawdzają się w praktyce, dzięki nim można generować naprawdę długie fragmenty kodów...
Można to tak zrobić: [syntax=basic4gl]Dim Command As String * 4 , Bajty_command(5) As Byte At Command Overlay Printbin Bajty_command(1) ; Bajty_command(2) ; Bajty_command(3) ; Bajty_command(4) ; Bajty_command(5)[/syntax]
Mam układ w konfiguracji jak w tytule ( do tego czujniki DS, BME280, zapis SD, RFM12 ) Ostatni etap to wysyłanie przez JSON do Domoticz. Niestety szwankuje wysyłanie i robi to losowo, czasem po wysłaniu danych z kilku czujników, czasem przejdzie cały "cykl" Odstęp pomiędzy wysyłaniem wynosi pomiędzy 20 a 30 sekund, natomiast odstęp pomiędzy wysyłaniem...
Witam, Napisałem program na Atmegę który m.in wysyła przez USART informację do PC. Część związana z USART jest klasyczna: [syntax=c] void uart_TX( unsigned char data ) { while ( !( UCSR0A & (1<<UDRE0)) ); UDR0 = data; } void uart_puts (char *s) { while (*s) { uart_TX(*s ++); } } void uart_putint(int value) { char string[6]; utoa(value, string,...
witam, nie mogę sobie poradzić z wysłaniem tablicy charów w przerwaniu. Pierwszy bajt wysyłam w pętli głównej programu, następne powinny się wysłać w przerwaniu. W putty dostaje krzaczki i co jakiś czas tekst, który wysyłam "test". Jak wysyłam bez przerwania wszystko działa poprawnie. Co robię źle pamiętam o sei(); i volatile int wsk_do_wyslania = 0;...
Metoda ciekawa i właśnie myślę jak ją zaimplementować. Tylko powstaje tutaj problem. W C# zdarzenie od odebrania danych wywoływane jest gdy RS232 cokolwiek odbierze, więc jeśli będę w przerwnaniu wysyłał znak po znaku to w C# będę otrzymywać pojedyncze znaki... potem ciężko będzie to skleić do kupy odbierając znak po znaku. Poza tym będę wysyłał różne...
Dzięki wielkie, udało się! Program odczytuje poprawnie informacje, dodatkowo ograniczyłem bufor do 1 znaku, bo Atmega wysyła znaki jeden po drugim. Poniżej zamieszczam wszystkie kody działające, dla potomnych :) UPDATE: ----------------------------------------... No i chyba poległem z wysyłaniem, nie obejdzie się...
Jeśli pytasz o sens stosowania przerwania informującego o nadaniu znaku to zależy on od ciebie. W szczególności nikt nie każe ci go wykorzystywać, a z tego co piszesz wynika, że można się bez niego obejść skoro odbiór masz nieblokujący zrobiony na przerwaniach odbiornika. Oczywiście w ATMega można jednocześnie nadawać i odbierać - te dwa podsystemy...
witam przedstawię kod zapożyczony od pixel7 i pozniej napiszę o co dokładnie mi chodzi - mam tel s55 podlaczony kom dzila jedynie co mam podpięte miedzy atmega a tel to TX->RX RX->TX i GND-GND narazie dzwonienie działa i wysyłanie sms nie wpełni ;) hehe chciałem wysłać do tel jakiegoś sms i coś sterować kod cały zapożyczony od autora (pixel7) tz bez...
Witam Do paru dni usiłuje uruchomić banalny program odczytujący temperaturę z DS18b20 oparty na artykule zamieszczonym w necie: http://www.jaglarz.com/ja/elektronika/ds... Niestety nie udaje się uruchomić programu na wyświetlaczu -0.1 Znalazłem identyczny temat na elektrodzie ale bez konkretnej odpowiedzi http://www.elektroda.pl/rtvforum/topic18...
Witam, w oparciu o przeczytane na forum posty (w szczególności http://www.elektroda.pl/rtvforum/topic14... stworzyłem poniższy kod, który w 99% działa. Poprawnie wysyła SMSy i poprawnie dzwoni w zależności od tego jaki guzik się naciśnie. Problem mam z odbiorem potwierdzeń z modułu SIM300CZ. Wiadome mi jest (po podłączeniu komputera), że na...
Program działa, ale mam pytanie... Czy ktoś się spotkał że w czujnikach DS1820 temperatura jest wyższa o kilka stopni ? Ja dla sprawdzenia włożyłem czujnik w folii do lodowatej wody (woda z lodem), temperatura powinna wskazywać coś koło zera, jednak pokazywało minimalnie 5 st. C; dlatego też w czujniku drugim odejmuję jeszcze 5 stopni. Drugie pytanie...
Witam! Mam problem z odbieraniem stringów przez USART. Chcę, aby po wpisaniu do terminala na komputerze "abc", mikrokontroler odesłał "OK". Kod programu: [syntax=c]//#define F_CPU 14745600 #include <avr/io.h> #include <util/delay.h> #define USART_BAUDRATE 9600 #define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1) unsigned char...
Witam :) efekt ma być taki że odbiorze stringa "TEST" powinna zostać przesłana na uart zawartość eeprom [syntax=c] #include <avr/io.h> #include <avr/pgmspace.h> #include <avr/eeprom.h> #include <string.h> #include <util/delay.h> #include <avr/interrupt.h> #include <stdlib.h> #include "mkuart.h" // biblioteka...
Witam, wiem że temat przewijał się przez Elektrodę miliony razy, ale w 60% nie został podsumowany i nic z nich ostatecznie nie wynikło. Otóż mam takie funkcje: [syntax=c] volatile unsigned char odb_x; //odebrana liczba X volatile unsigned char sss; volatile unsigned char odb_flaga =0; //flaga informująca main() o odebraniu liczby volatile unsigned int...
Witam. Mam problem z dekoderm wywołania w systemie "5-tone", tony dekoduje poprawnie i wyświetla poprawnie, niestety próba wysłania ich przez UART nie jest zadowalająca. Jak widać program wykonuję "w pętli" wypisywanie odebranych znaków, czego wynikiem jest np dla kodu 12345: 1 12 1234 12345 Czy da się przerobić tak program aby na UART wysłać zmienną...
Witam, po przesiadce z bascom do winavr piszę przykładowe programy w celu poznania C dla AVR, tym razem chciałbym wysyłać po rs232 odczyt z przetwornika analogowego. Używam a328p i po krótkim zapoznaniu się z dokumentacją układu ustawiłem transmisję i adc [syntax=c] #include <avr/io.h> #include <util/delay.h> int main( void ) { UCSR0B =...
Witam wszystkich Elektrodziaków! Siedzę nad tym juz jakiś czas i nie umiem znaleźć żadnej pomocnej mi funkcji. Chodzi mi o wydobycie z poszczególnych literek stringa kody ascii. Funkcja ASC() była by bardzo pomocna, z tym że zamienia ona tylko pierwszy znak. Co z pozostałymi? Marzy mi się nawigacja po stringach jak w pascalu tekst[10] i po sprawie....
witam, walczę z odbiorem stringa po uart w c#. wysyłam z ATmegi co sekundę stringa: USART_TS("test123 \r\n"); jak odpalę putty to pięknie wszystko wyskakuje linijka po linijce. http://obrazki.elektroda.pl/9790346800_1... natomiast w c# próbuję z serialPort1.Read, serialPort1.ReadLine, serialPort1.ReadExisting i ucina mi pierwszą...
Witam, zabralem sie za komunikacje USART miedzy PC a atmega. Znalazlem juz jak napisac wysylanie i odbieranie pojedynczego znaku oraz wysylanie stringu, ale nigdzie nie moge znalezc jak odebrac stringa np. wysylam przez Docklight "jakies zdanie" i wysylam to na LCD. funkcje jakie mam: void nadajznak(char dana1) //wyślij znak { while(!(UCSR1A&(1<<...
Witam Mam pewien program z obsługą MMC i dość dużą ilością różnych zmiennych, w Bascomie program kompiluje się prawidłowo nie pokazuje żadnych błędów ale na końcu raportu mam coś takiego : Source string could be too big to fit into target string [T(1)>___STRBUF] in line 483 Source string could be too big to fit into target string...
No to przyjacielu jaka jest ta super komenda ? Ta super komenda , a właściwie jest to znane - choć nie wszystkim i nie do końca - polecenie konfiguracyjne portu szeregowego Config Serialin = Buffered , Size = XX , Bytematch = YY Zajrzyj teraz do pomocy Bascoma i przeczytaj , jakie wspaniałe możliwości daje nam ostatni (zaznaczony na niebiesko) parametr...
No tak, komputer odbiera je jako "suche" bajty, ale Labview, niejako z miejsca interpretuję je jako dane string. Na wyjściu bloczku "VISA Read" Mylisz stringi. To, czego spodziewa się klocek to string w postaci "3.1415". A string który dostajesz z atmegi to cztery bajty o jakiś tam wartościach które zostają zamienione na string w ten sposób, że każdy...
a to program Dodano po 11 Mam problem z załącznikiem może teraz.:) Dodano po 6 plik się nie dodaje ?? wyślę tak : $regfile = "m8def.dat" $crystal = 11059200 '$baud = 9600 '$baud = 19200 $baud = 38400 Echo On '******** KONFIGURACJA WYŚWIETLACZA LCD ****************************************... Config Lcd = 20 * 4 ' Deklaracja...
Może, ktoś z kolegów podpowie, bo nie mam pojęcia dlaczego nie mogę skomunikować Atmegi 8 z Atmegą 16. Atmega16 wysyła przez RS jednoznakowy string i druga Atmega go odbiera i realizuje sekwencję programu związaną z tym poleceniem. po wykonaniu ma odpowiedzieć tym samym znakiem, że polecenie zostało zrealizowane i tu jest problem. Pierwsza Atmega informacji...
(at)Tojmak987123 IMHO niepotrzebnie komplikujesz. Jaki jest cel tego, aby dublować funkcje odbioru znaków? Masz na przerwaniach wpisywać znaki do bufora i ew. sygnalizować, że mamy coś wartego zainteresowania (czyli jest linia zakończona CRLF). Interpretacja zawartości bufora może być zrealizowana za pomocą funkcji obsługi tokenów ze string.h. A całość...
Poprawcie mnie jeśli się mylę, ale przecież char to po prostu typ zmiennej 8-bitowej. Nie ma różnicy co prześlę w ramach tych 8 bitów. Lecą sobie zera i jedynki i chodzi tylko o to, żeby programista wiedział jak je później zinterpretować. Innymi słowy czy paczka 8-bitów (typu znakowego 'char') to część jakiejś liczby, którą później programista złoży...
"Wydaje" mi się, że coś takiego powinno działać: [syntax=vbnet] Local Domoticz_cmd As String * 200 Domoticz_cmd = "AT+CIPSTART=" + Chr(34) + "TCP" + Chr(34) + "," + Chr(34) + Domoticz_ip + Chr(34) + ",8080" ' typ polaczenia oraz IP serwera Print Domoticz_cmd Waitms 200 Domoticz_cmd = "GET /json.htm?type=command¶m=udevice&id... Domoticz_cmd = Domoticz_cmd...
Witam! Nie umiem sobie poradzić z uruchomieniem kodu. Myślę, że temat książkowy. Mam błędy w programie który próbuję uruchomić w celu dalszej edukacji w C. Nie znam jeszcze dokładnie w tym języku wszystkiego, więc zwracam się o pomoc, jeżeli to możliwe, aby uruchomić ten projekt. Dodaję kod i plik z builda. Poprawiłem tytuł, formatowanie postu i pisownię....
Witam, właśnie przerabiam kolejne ćwiczenie z książki J. Dolińskiego, ale przechodząc do rzeczy... Chcę wysłać kolejno w pętli za pomocą funkcji "WyslijTekstROM" 3 kolejne stringi, jednak przy wysyłaniu pojawia się następujący problem, że tylko ostatni string wypisywany jest na terminalu cały, a 2 początkowe są poucinane. Sądzę, że problem może leżeć...
Czyli obecnie masz zepsutą i błędną funkcję pobierającą rzekomo łańcuch, a w rzeczywistości jeden znak na ATmega oraz program na PC niedopasowany do poprzedniej, nieco kulawej ale jakoś działającej funkcji odbioru łańcucha. Program na PC nie może wysyłać nowych znaków dopóki nie odbierze całego łańcucha z ATmega, bo inaczej nadawane znaki nie będą odbierane...
A funkcja CDec ? EDIT: A jeśli już chodzi o samo wysyłanie i odbieranie. Jeśli masz zmienną liczbę znaków, a chcesz to czymś terminować to najlepiej użyj znaku CR (0x0D, carriage return) po każdym wysłanym komunikacie. W programie natomiast sprawdzasz czy taki znak otrzymano, jeśli tak konwertujesz liczbę i czyścisz bufor odbiorczy, jeśli nie dopisujesz...
Bo Const to stała a Ty potrzebujesz czegoś jak DB albo PROGMEM. Czyli danych umieszczonych w pamięci. A stała niekoniecznie będzie tam umieszczona. Stała może być np. wbudowana w rozkaz assemblera (akurat nie tutaj ale inaczej to może być). Zrób raczej tak: Dim Atmega As String Dim Attiny As String Atmega = "Atmega" Attiny = "Attiny"...
No to zaczynamy po raz kolejny. Coś takiego jak stworzyłeś to niestety za szybko nie będzie działać. Mega z kwarcem rs 14 z groszami działa naprawdę szybko i można zrobić bardzo dużo w jedna sekundę. Do odbierania i wysyłania danych można sobie napisać własną procedurę - nawet w bascomie i jest ona sporo szybsza i działa rewelacyjnie. Deklarujemy przerwania...
Najpierw należy wyodrębnić poszczególne znaki z hasła które chcemy wysłać. Następnie wyłuskane znaki (w T_string) zamieniamy na kod ASCII i wysyłamy. W s1 znajduje się ciąg znaków np.$TEMP. W D6 do D10 znajdzie się liczbowa reprezentacja liter ASCII. Deklaracje : Dim T_string As String * 6 Dim s 1 As String * 6 '-------------------------- procedura...
Witam serdecznie Jako kolejny krok nauki uczę się oprogramować bluetooth hc-05 oraz atmega 8 sprzęgnięte z aplikacją w telefonie. Połączenie bluetooth jest nawiązane po naciśnięciu przycisków w telefonie wysyłana jest dana typu string. Jeden przycisk wysyła daną o wartości "zapal", drugi przycisk o wartości "zgaś". Do portu atmegi8 podłączona jest dioda...
Puściłem takie coś, tylko Atmega -> PC: [syntax=c]int main (void) { USART_Init(__UBRR); sei(); while(1) { uart_puts("Przykladowy string.\n\r"); _delay_ms(250); } }[/syntax] UART, 250kbps. Nie krzaczy. Wychodzi na to, że błąd w sofcie dot. nRFa? Bo jak to się objawia - jak już się zawiesza to on wysyła "kilka krzaków" i staje dęba, nie wysyła krzaków...
Przy odebraniu pierwszej z linii zaraz po otwarciu COM zdarza się ( nie zawsze ) że ATMEGA wyślę kilka "krzaków"...,np. *&$% i wtedy debugger wurzuca błąd konwersji... Przy tych ustawieniach ATMega-i (1MHz i 1200bps) masz jakie 0.2% błędów w wysyłanych informacjach. Może to nie jest dużo, ale z upływem czasu liczba błędów będzie rosła. Zmień ustawienia...
Nie wystarczy itoa? http://pl.wikibooks.org/wiki/C/itoa Ja wiem, wiem - biblioteki zwiększają zajętość flash... , ale myślę (w tym przypadku), że jeżeli projekt jest mały i masz jeszcze trochę flash'a i RAM oszczędzanie - poprzez pisanie własnych funkcji konwertujących int na string nie ma sensu. Ale wracając do twojego kodu: W twoim przykładzie brak...
Witam Zauważyłem coś dziwnego w moim układzie. Problem polega na tym, że Atmega gubi przerwania, aby tak mi się wydaje. główna pętla programu testującego: [syntax=c] while(1) { // część kodu, która nie działa: while ( !(UCSRA & (1<<RXC)) ); usart0_write_string("okej"); } [/syntax] do uC wysyłam z terminala jakieś dane i atmega powinna na nie...
Witam Wiec prawdopodobnie jest tak: Ta funkcja void send_rs_wyraz(char *s) po prostu nie wie kiedy skończyć wysyłanie znaków, aby ja o tym poinformować musisz przed wywołaniem zakończyć string zerem SIGNAL (SIG_UART_RECV) { cli(); if (UDR==0x0D) { RxBuffer[RxCounter]=0; <------TU send_rs_wyraz(RxBuffer);...
Oto mój kod do wysyłania znaków: [[syntax=c] void nadajznak(char dana1) { while(!(UCSRA&(1<<UDRE))); //czekaj na wysłanie poprzedniej danej UDR=dana1; } [/syntax] [syntax=c] void nadajstring(char *dana) //wysyłanie całego napisu { int dlugosc; //zmienna określająca długość napisu int k=0; //zmienna licznikowa dlugosc=strlen(dana); //pobieranie...
Dzień dobry, mam problem z oprogramowaniem. Kilka słów o hardware : karta microSD jest podłączona do atmegi poprzez konwerter poziomów. Atmega działa tutaj jedynie jako pośrednik, dalej jest podłączona do Arduino Mega przez I2C. Problem wygląda tak : wszystkie komendy wysyłają się bez problemu w obie strony. Niestety, jeśli chcę wysłać dane odczytane...
A transmitery fm są legalne czy nielegalne? Nadawanie w paśnmie, które jest licencjonowane jako takie jest niedozwolone (są niewielkie wykluczenia, ale jednak nie zaleca się). Niemniej jednak przekraczać prędkości czy przechodzić na czerwonym świetle też nie można -a się zradza ;-) Wszystko jest kwestią czasu, jeżeli Twoje urządzenie nadawcze* nie...
Witam. Próbuję napisać program w języku c# (Windows form application) komunikujący się z procesorem atmega 16 przez serial port (przejściówka usb-uart na FT232RL.) Po stronie atmegi jest wyświetlacz na sterowniku ks108. Mój problem polega na tym że jeśli wysyłam przykładowo stringa "12345678" na wyświetlaczu dostaję tylko 3 pierwsze cyfry (123), jeśli...
Miałem chwilę więc chciałem napisać szybko program na Aduino Mega2560, ale potem sobie przypomniałem, że tam mikroskopijny kwarc a błąd przy 16MHz dla 115200 jest za duży. Wziąłem więc Mega128 bo była wolna i pod ręką. Napisałem program w którym przez Charmatch odbieram string "1234567890" po odebraniu Entera. Żeby było uczciwie to jeszcze odpaliłem...
Czy wysyłanie danych (USART_Transmit_string) też działa na przerwaniach i na odpowiedni bufor? Bo wywołujesz tą funkcję w przerwaniu od odbiornika i jeśli to czeka, to czeka tyle ile transmisja kilku znaków - w tym czasie gubisz przychodzące dane. Natomiast jak to masz na przerwaniach, to czy nadajnik posiada bufor, czy jedynie pamięta wskaźnik - w...
Najpierw trochę uszczypliwości - co każe ci myśleć, że twój program jest napisany w C++? Skąd informacja, że float zajmuje 2 bajty? A teraz rozwiązanie - można konwertować liczbę na string i wysyłać string - wada - string zwykle będzie dużo dłuższy niż przesłanie po prostu floata. Ale ma też zaletę - uniezależnia cię od endianess na komputerze odbierającym...
Wysyłam do procesorka tekst w formacie takim: xyyy gdzie: x - wartość 0 lub 1 yyy - wartość od 0 do 255 Potrzebuję w procesorze wartość "x" wrzucić do jednej zmiennej, a wartość yyy do drugiej zmiennej. Nie podaję kodu programu ani parametrów transmisji, bo są na pewno poprawne (jak wysyłam coś do uC, gdy mam wrzucony w niego program testowy to mi odpowiada...
Witam, pisze w nie niedokończonych bo projektowi jeszcze daleko do publikacji. Wolał bym też nie wklejać jeszcze źródeł ani samego programu, ktoś kto się uczy mógł by nie potrzebnie brnąć w to bagno które stworzyłem w C#. :p obiecuje jednak ze gdy wszystko będzie gotowe na pewno się podzielę. http://obrazki.elektroda.pl/8173811000_1...
Witam, Mam następujący problem. Buduje sobie lokalizator. Przez USART0 komunikuję się z GPSem (GPS wysyła dane co 1s) i tu komunikacja przebiega jak należy. Natomiast przez USART1 komunikuję się z GSMem. W tym przypadku wysyłanie działa poprawnie, natomiast odebrane dane zawierają tylko dwa pierwsze i dwa ostatnie znaki. Sprawdzałam procka RealTermem...
Mam problem z wysyłaniem i odebraniem z rs485. Jest to ATMEGA 8 + max485. [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <HD44780.c> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <avr/eeprom.h> #include <avr/wdt.h> #include <stdio.h> #include <string.h> #include <stdlib.h>...
Sprawdź jak masz ustawiony terminal (bity stopu, parzystość) bo jeśli nie określasz tego w kodzie programu to ustawienia brane są z tych jakie masz ustawione w IDE. Jeśli prędkość procesora na pewno odpowiada tej zadeklarowanej to możesz spróbować tak. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $baud = 19200 Echo Off Dim Str_1 As String...
Z tym zerem jest tak, że jak tworzysz zmienna typu string (null-terminated) to ma ona automatycznie zakończenie w postaci 0 na końcu. Lecz jeśli zrobisz tablicę znaków i chcesz uzywać jako stringa to musisz dodać 0 na końcu (żeby było kompatybilne ze stringiem). Czyli każdy string = text+0 a tablica bedzie u ciebie tylko text, dlatego aby swobodnie...
Witam, Wykonuję projekt w którym muszę wykorzystać komórkę i komendy AT. Mam program wykonujący konwertowanie do PDU. Nie wiem dlaczego komórka (siemens MT50) nie za każdym razem wysyła smsa.Na 10 prób ok 3 smsy nie zostają wysłane. Jest ona podłączona do Atmegi128 bez użycia Maxa232 tylko bezpośrednio, dodatkowo włączam diodę Zenera która ogranicza...
Przecież podałem jak można to ładnie i składnie wysłać ;) Najlepiej zamiast tablicy na żywca w formie bajtów wysyłać stringi i je analizować. Na przykład zamiast wysłać ciąg z wartościami 0x70,0x20... proponowałbym wysyłać stringa w formie : "A=112,B=32...\r\n", na końcu stringa dajemy \r\n żeby dać znać mikrokontrolerowi, że jest to koniec transmisji....
Reset może wynikać z wielu rzeczy, ale skoro jest związany z przerwaniami, to obstawiam brak zdefiniowanej funkcji obsługi przerwania. Pokaż funkcję wysyłającą dane przez UART i/lub wyświetlającą dane na x86. (at)AnicoZ U mnie też się kompiluje bez błędów. Wiem, że w napis1 brakuje terminatora, ale kompilator tego nie może wychwycić, ponieważ jawnie...
Ok, słusznie zauważyłeś mój błąd, już go poprawiłem jednak nadal nie odbieram tego co chcę,wiec prosze o kilka wyjaśnień. Otóż rozumiem, że funkcja "USART_in();" zwraca mi jeden znak, który przychodzi z telefonu. Napisałeś o tej 1 sekundzie - szczerze mowiąc robie pierwszy raz coś takiego i nie wiem ile należy tam zaczekać lub czy w ogole jakies opóźnienie...
arduino wysyłanie string string atmega atmega string
cisnienie piecu tulejki redukcyjna czarna lista procesor
FirstChip FC1178BC USB2DISK 32GB Fake Capacity, Micron 1GB NAND, VID FFFF, MPTool Recovery Lancia Lybra – układanie gąbek podszybia, uszczelnienie, montaż, oryginalne wkładki EPDM