To dobry moment na poczytanie w końcu datasheeta, czyli zrobienie tak zwanego RTFM. • Bit 7 – RXC: USART Receive Complete This flag bit is set when there are unread data in the receive buffer and cleared when the receive buffer is empty (i.e., does not contain any unread data). If the receiver is disabled, the receive buffer will be flushed...
Wkradł się bład przy wpisywaniu. Fuse Bity E4 D9 a nie 99 bo to pokazuje jasno na Twoim screenie Watchdog Always On :D Wyswietlacz nawet bez nadajnika ma wyświetlac po starcie trzy poziome kreski. W programie łatwo odczytać że żeby ustawić zero na wyświetlaczu procesor podaje masę na sześć segmentów. Wspólna końcówka wyświetlacza jest sterowana poprzez...
. Problem pojawia się na każdym pilocie, Piny: 0 i 1 (PD0 i PD1) są te same Rx i Tx co służą do komunikacji z komputerem zarówno podczas wpisywania programu jak i później dla komunikacji w serial monitor; raczej więc unikaj coś do nich podłączac, chyba że jesteś w desperacji braku pinów. Ostatnia rzecz, dla której możesz poświęcic nieco uwagi to salut...
https://obrazki.elektroda.pl/4024708700_... Witajcie moi drodzy. Przedstawię tu pierwszy na świecie tutorial programowania modułu WiFi WB2S, czyli BK7231. Moduł ten występuje w wielu urządzeniach smart home, a w internecie panuje opinia, że nie można stworzyć dla niego własnego firmware. Nic bardziej mylnego - pokażę tu krok po kroku...
Flagę TXE powinno się sprawdzać PRZED wpisaniem czegoś do DR (to akurat nie jest wielkim problemem), ale przed odczytaniem DR powinno się sprawdzać czy flaga RXNE jest ustawiona - dopiero wtedy można odczytać to co jest w DR. Bez tego wciąż nie odczytujesz tego co chcesz - na etapie inicjalizacji odczyt masz praktycznie natychmiast po wpisaniu (bufor...
GPIOC->AFR Dodano po 4 To teraz funkcja WriteSPI narazie bez DMA. [syntax=c] void WriteSPI(u8 cmd) { CS_Low; while (SPI3->SR & !SPI_SR_TXE) ; SPI1->DR = cmd; while (SPI3->SR & SPI_SR_RXNE) ; CS_High; }[/syntax] TXE: Transmit buffer empty 0: Tx buffer not empty 1: Tx buffer empty RXNE: Receive buffer not empty 0: Rx buffer empty 1:...
USART także kasuje: Ale RXC o ile się nie mylę, już nie jest kasowana przy obsłudze przerwania. Dopiero odczyt UDR kasuje flagę RxC: This flag bit is set when there are unread data in the receive buffer and cleared when the receive buffer is empty (i.e., does not contain any unread data). If the Receiver is disabled, the receive buffer will be flushed...
nie musi nic kasowac, flaga sie sama kasuje jak dane z UDR sa czytane. Bit 7 – RXC: USART Receive Complete This flag bit is set when there are unread data in the receive buffer and cleared when the receive buffer is empty (i.e. does not contain any unread data ).
Masz rację po dodaniu delikatnego opóźnienia zadziałało. [syntax=c] GPIOA -> ODR &= ~GPIO_ODR_ODR_4; SPI1->DR = 0xf0; for(uint16_t I = 0; I != 50; I++){} while((SPI1->SR & SPI_SR_BSY)); GPIOA -> ODR |= GPIO_ODR_ODR_4; for(uint16_t I = 0; I != 5000; I++){} [/syntax] Niestety w nocie mam napisane Bit 0 RXNE: Receive buffer not empty 0: Rx buffer empty...
No i wszystko. Panowie, popełniłem błąd bo założyłem błędnie ten właśnie czas, nie wiem skąd mi się to w głowie pojawiło, przepraszam. Natomiast dzięki Waszym wyjaśnieniom i oscyloskopowi który służy mi nie od dziś, doszedłem do wszystkiego co aktualnie dla mnie istotne. Dziękuję za wyjaśnienia. Aktualnie z AtTiny85 wyciskam ile się da, i proszę mi...
a bitu UDRE nie trzeba ustawic po zapisie do UDR ? samo umieszczenie bajtu w UDR wystarczy. Popatrz: • Bit 5 – UDRE: USART Data Register Empty The UDRE Flag indicates if the transmit buffer (UDR) is ready to receive new data. If UDRE is one, the buffer is empty, and therefore ready to be written. The UDRE Flag can generate a Data Register...
Witam! Od jakiegoś czasu staram się oprogramować żyroskop, który znajduje się w zestawie rozwojowym Stm32f3-discovery. Jest to żyroskop L3GD20. Komunikuje się z uC poprzez interfejs SPI (narzucone przez konstrukcję zestawu). Generalnie komunikacja działa, ale bardzo chaotycznie. Przykładowo: - na zapytanie o rejestr WHO_AM_I dostawałem kiedyś odpowiedź...
W AVR306 mozna znalezc taki kod obslugi USARTA dla atmegi128: #include <avr/io.h> #include <avr/iom128.h> #include <avr/ina90.h> /* UART Buffer Defines */ #define USART_RX_BUFFER_SIZE 128 /* 2,4,8,16,32,64,128 or 256 bytes */ #define USART_TX_BUFFER_SIZE 128 /* 2,4,8,16,32,64,128 or 256 bytes */ #define USART_RX_BUFFER_MASK ( USART_RX_BUFFER_SIZE...
OK, nie ma. Ale to czego brakuje to tylko 4 banalne makrodefinicje i trochę kodu inicjującego/deinicujującego SPI. To nie powinien być problem. W którejś z poprzednich wersji liba było to: [syntax=c]/*----------------------------... /* MMCv3/SDv1/SDv2 (in SPI mode) control module (C)ChaN, 2010 */ /*--------------------------------------...
Witam, czy poniższy kod zadziała? Chcę wysłać bajt danych do komputera wykorzystując konwerter UART-USB i odebrać w terminalu. Czy poniższy kod zadziała? [syntax=c] #include <stdio.h> #include <stdlib.h> #include <p32xxxx.h> #include <plib.h> #pragma config FPLLMUL = MUL_20, FPLLIDIV = DIV_2, FPLLODIV = DIV_1, FWDTEN = OFF #pragma...
Problem już prawie rozwiązany, gdyż moja lista z projektami świeciła się jak choinka za sprawą tych samych, złych bibliotek. Poprawiłem już prawie wszystko, ale chce się upewnić co do jednego. Czy w kodzie który zamieszczam wystarczy usunąć "||" czy coś tam powinno być? W pliku źródłowym na jakiejś stronie internetowej też tego nie ma, więc nie usunąłem...
Szukałem na internecie poradników do terminala UART i udało mi się zrobić coś takiego z kawałków znalezionych w sieci. Problem polega na tym, że mój kompilator wyrzuca błędy a nie pokazuje mi gdzie one są (i tym samym nie mogę ich skompilować) i jeśli ktoś może sprawdzić poprawność kodu w 1. i 2. main.c(są to dwa odzielne programy w dwóch projektach...
Od kilku dni walczę z niby banalnym tematem. Przewałkowałem krok po kroku dokumentację, noty aplikacyjne i dostępne przykłady ale nadal nie mogę ruszyć. Chcę przesłać przez SPI5 wykorzystując DMA2 (strumienie: 3 do odczytu i 4 do zapisu na kanale 2) dane do/z układu ADE7953 . Sama transmisja SPI robiona programowo (sprawdzanie flag TXE i RXNE) działa...
Witajcie, w jaki sposób można optymalnie odczytać przesłany (aż do znaku nowej linii / powrotu karetki) ciąg znaków od przerwania otrzymania danych? /* * Sterowanie przez RS232 (main.c) */ #include "defines.h" #include <ctype.h> #include <stdint.h> #include <stdlib.h> #include <stdio.h> #include <avr/interrupt.h>...
Witam, postanowiłem przenieść swój układ z atmegi na atXmegę. Do tej pory do komunikacji urządzeń po serialu używałem biblioteki SoftwareSerial (Arduino) bo układ miał tylko 1 fizyczny serial. Teraz w Xmedze mam ich 5 :) Wgrałem [url=ten]http://mikrokontrolery.blogspot... programik i wszystko...
Mam wyświetlacz IIC (załącznik) podłączony do TWI AVR-ka. Komunikacja po IIC poprawna, bo mam ACK (logi z SaleAE w załączniku - spakowałem, bo Elektroda nie akceptuje rozszerzenia pliku). Inicjalizuję tryb 8-bit zgodnie z dstaschet. Niestety nie pokazuje sie upragniony napis. Mam wątpliwości co do funkcji bitu "Co" (Continue). Z noty wynika, że gdy...
The TXCn Flag can be used to check that the Transmitter has completed all transfers A sprawdzasz The UDREn Flag indicates if the transmit buffer (UDRn) is ready to receive new data.
Dzięki za odpowiedzi! gaskoin wydaje mi się, że sprawdzanie bufora w przerwaniu po odebraniu znaku nie będzie zbyt optymalne bo komunikacja wygląda tak: Zapytanie: AT\r\n Odpowiedź: AT\r\n// Z włączonym echem OK\r\n Więc w trakcie odbierania znak \n pojawia się klika razy przez co będę blokował przerwanie podczas odbierania danych. Teoretycznie echo...
Witam, Próbuję korzystać z biblioteki Peter Fleury do obsługi usart-u, której listing znajduje się poniżej: PLIK uart.c /***************************************... Title: Interrupt UART library with receive/transmit circular buffers Author: Peter Fleury <pfleury(at)gmx.ch> http://jump.to/fleury File:...
Witam, Na wstępie powiem, że próbowałem kilku poradników z sieci i niestety żaden nie zadziałał w związku z tym liczę na waszą pomoc. Próbowałem już połączeń i kodu z następujących stron : Najważniejsze : Na arduino programatorem USBasp wgrałem oprogramowanie, o dziwo - nie udało się tego dokonać poprzez USB, nie mogę także wypalić bootloadera na arduino...
Najlepszego w Nowym Roku i w następnch (rokach też). Proszęż uprzejmież : [syntax=c] #ifndef NOUVOTON_SD_CARD_H_INCLUDED #define NOUVOTON_SD_CARD_H_INCLUDED // #include "NouvotonSDCard.h" #define __IO volatile typedef struct { __IO uint8_t CSDStruct; /* CSD structure */ __IO uint8_t SysSpecVersion; /* System specification version */ __IO uint8_t Reserved1;...
Cześć, Naskrobałem programik, który powinien mi wysyłać przez UART co sekundę 1 z 3 stringów(czy tam tablic charów bo to w C) ale coś się buntuje. Problem polega na tym, że nie przesyła mi wszystkich wartości tylko jakieś ochłapy i to niepełne. Pytanie brzmi czy to ja mam błąd w kodzie? Gdzieś w USART_SendString ? Czy może jest jakiś maksymalny rozmiar...
Szanowni Forumowicze, uruchomiłem sobie sprzętowego UARTa wykorzystując bibliotekę ze strony atmela. Wszystko działa, łączę się z terminalem na komputerze, wyświetla się to co powinno. Dodałem też funkcję do wysyłania całego łańcucha znaków wykorzystując wskaźnik, gdyż w atmelowskiej bibliotece znalazłem jedynie do wysyłania konkretnych pojedynczych...
Spróbowałem z UARTem programowym. Kod wygląda tak: [syntax=c]#include <avr/io.h> #include <util/delay.h> void setUpSerial(); void sendChar(char c); void sendString(char *text); char usart_receiveByte(); int main(void) { /* PC3 (TXD0) as output. */ PORTC.DIRSET = PIN3_bm; /* PC2 (RXD0) as input. */ PORTC.DIRCLR = PIN2_bm; setUpSerial(); while(1)...
wiem wiem też zauważyłem ten błąd ale dalej nie działa ;/ Dodano po 3 robie coś takiego Dodano po 1 Próbowałem jeszcze tak sie wbić ale tez nie działa Dodano po 1 PRobuje zrobic teraz tak :/ i dalej nie działa oto co mam dla megi32 [syntax=c]#include <stdlib.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h>...
Czujnik to HTU21D. Wysyłam do niego komendy, które są w Datasheet (w załączniku). Chcę odczytać temperaturę w trybie Hold Master. Oto kompletny kod main.c: http://obrazki.elektroda.pl/4783952000_1...
Dzięki za pomoc, Biblioteki sciągnałem i przerobiłem ale pojawia sie problem a mianowicie funkcja disk_initialize zwraca 0 tak jak powinna ale kolejna funkcja check_fs zwraca wartość 2 powodując że nie mogę iść dalej z pracą na "Facie". Error jest zwracany przy komentarzu : Dodano po 2 Problem rozwiązany musiałem poprawić obsługę SPI ale teraz funkcja...
Witam Staram się nawiązać komunikację pomiędzy dwoma płytkami STM32F0 przy użyciu modułów RFM73 - jednakże zatrzymałem się na etapie modyfikowania bibliotek dedykowanych dla modułu RFM70 i STM32F10. Problem polega na tym, że nie dochodzi do komunikacji i nie potrafię znaleźć przyczyny. Zamieszczam kody: RFM70.h [syntax=C] /* ****************************************...
Moze masz cos w kodzie namieszane, tutaj masz kod do obslugi uarta tyle za na 2378, ale z tego co kojarze to sie nie powinien roznic ;) /***************************************... Project : LPC2378_LED Compiler : ARM GCC 4.1.1 Board : KT-M-LPC2378 www.kristech.eu ****************************************...
No dobra, może tak, z [url=http://morf.lv/modules.php?name=tut... strony mam taki kod, wybrałem tylko minimum (chyba). Wszystko się kompiluje ale coś dalej nie gra. Czy coś się wysyła nie wiem bo problem jest tym razem ze sterownikiem usb atmela, "nie rozpoznano urządzenia" czyli ogóle system coś wykrywa ale gdzieś...
Witam :) mam taki problem: zamysł jest taki. 2 ATmegi które miałem pod ręką czyli 88p i 328p. ATmega 88 odpowiedzialna na pomiar temperatury i wysłanie do 328p, która z kolei ma wyświetlić temperaturę na LCD. Miałem już jakieś małe przygody ogólnie z językiem C w tym z Arduino ale postanowiłem postawić sobie bardziej ambitne cele stąd (wydawało by się)...
Witam Posiadam enkoder z poniższego linka: rls.si/en/rlc2ic-miniature-rotary-pcb-le... Próbuję go podłączyć pod Raspberry pi b3. Problemem jest dokładność uzależniona od szybkości obrotu, przy bardzo wolnym obrocie odczytuję do 2 000 impulsów na obrót, przy szybszym nawet poniżej tysiąca. Chciałbym jednak mieć zawszę taką...
Mam problem z najnowszą biblioteką FatFs. Wszystko działa idealnie na SPI1, a na SPI2 nie chce chodzić. Może ktoś z doświadczonych kolegów zerknie na konfigurację. Przy ustawieniu SPI_CH na 1 wszystko śmiga jak należy, przy 2 tylko rozpoznaje, że karta jest włożona lub wyjęta. Przyglądam się temu i nie widzę błędu. Co tu jest nie tak? [syntax=c] #define...
Ok. Walczylem i poradzilem sobie xD Problem lezal w inicjalizacji. Zeby nie bylo ze tak dlugo z tym walczylem ale swieta byly i kilka innych projektow. Ch.M.: No niby lepiej przez USB ale program pisze pod gotowa plytke i mialem rozkaz z gory zeby bylo RS232. Dla zainteresowanych wstawiam kod. Schemat na poczatku postu. Dodam ze kod jest dla ATmega128....
Drugi sposób to użycie http://www.microchip.com/mplab/mplab-cod... Oprócz tego wiele innych. Albert Niby pomaga ale potrafi tak zagmatwać kod że czasami lepiej i szybciej jest napisać samemu i po kompilacji jest pełno warning:. Czemu nie zrobili jak w Arduino. Wchodzę w bibliotekę I2C zmieniam szybkość, częstotliwość zegara, ustawiam na...
Z racji że chyba szykuje się dłuższy wątek otwieram w osobnym wątku temat rozpoczęty tutaj: http://www.elektroda.pl/rtvforum/topic25... Jeszcze raz kod: [syntax=c]void spi_init(void) { //clock in for spi & PB,PC RCC->AHBENR |= RCC_AHBENR_GPIOBEN | RCC_AHBENR_GPIOCEN; //B13-B15 - SPI, C6 - CS RCC->APB1ENR |= RCC_APB1ENR_SPI2EN;...
(at)Freddie Chopin a czy możesz mi coś podpowiedzieć z tym problemem o którym pisałem wyżej? Zamiast transmisji 8-bit mam 16-bit. 16 sygnałów SCK. . Procesor 32F051 C0. Kod inicjalizacji SPI: [syntax=c]void spi_init(void) { //clock in for spi & PB,PC RCC->AHBENR |= RCC_AHBENR_GPIOBEN | RCC_AHBENR_GPIOCEN; //B13-B15 - SPI, C6 - CS RCC->APB1ENR...
Czegoś tu nie rozumiem. Razem z FatFS można ściągnąć gotowy, działający przykład na LPC17xx, ze wszystkimi potrzebnymi funkcjami obsługi SPI i dostępu do karty. Dlaczego go nie użyjesz, tylko próbujesz szyć coś z jakichś dziwnych łatek? Jeśli chodzi o SPI, to LPC11xx jest bardzo podobny do LPC17xx. Próbowałem z niego korzystać, a konkretnie pracowałem...
Witam Od jakiegoś czasu próbuję zapędzić moją ATmegę32 do współpracy z kartą SD. Wykorzystałem do tego FatFs, a problem mam z inicjalizacją karty - a przynajmniej tak sądzę, ponieważ funkcje f_mount i f_open zwracają wartość FR_NOT_READY, co wskazuje na niepowodzenie funkcji disk_initialize. W moim projekcie użyłem przykładów zamieszczonych na tej samej...
Witam! Mam problem z fatfs 0.09b (najnowsza; wersja 0.07 też nie działa) pod stm32f103vet6. Komunikacja SPI. Maksymalny prescaler SPI do debug'u. (Na każdej prędkości to samo). Disk timer proc na SysTick'u (działa). Karta formatowana na różne jednostki alokacji, FAT, FAT32 zawsze to samo. Nie korzystam z LFN. Strona kodowa 852, 125x, 1 (ANSI) bez znaczenia....
Mam taki plik nagłówkowy [syntax=c]/*============================... * Project: Board Support Package (BSP) * Developed using: * Function: Standard definitions for PHILIPS ARM7TDMI-S controller LPC213x * * Copyright HighTec EDV-Systeme GmbH 1982-2007 *=======================================...
Proszę kod bez dodatkowych pustych lini. biblioteka [syntax=c] /* Includes ----------------------------------------... #include "TC.h" #include "systick.h" #include "GLCD.h" #include <stdio.h>; /***************************************... * Function Name : MAX31855_SPI_Init * Description...
Zmieniłem trochę w projekcie. Zastosowałem najnowszą wersję FatFS. Plik z konfiguracją funkcji zadeklarowanych diskio.h pobrałem ze [url=http://www.siwawi.arubi.uni-kl.de/a... strony i przerobiłem go by pasował do STM32L. Po testach objawy wyglądają tak: Karty 512MB i 16GB: porgram mniej...
Szanowni koledzy, proszę o drobną pomoc z uruchomieniem modułów komunikacji nRF24L01 - próbowałem już niemal wszystkiego i nie chce mi to działać , sądzę że problem leży po stronie "odbiornika" ale ślęczę nad tym już tak długo , że nie widzę już żadnej przyczyny dla której odbiornik nie wychwytuje żadnych danych. Otóż mam 2 układy na atmega8 (zeg.int.1MHz)-...
Usunąłem poprzedni post. Zrobiłem tak: 1.Najnowszy sample ze strony chana 2.Usuwam ata.c, cfc.c cfmm.c 3.IoInit() usuwam porty E, F, G 4.Znowu porty E w pliku mmcbb.c (Bitbanging MMCv3/SDv1/SDv2 (in SPI mode) control module), usuwam cały plik, nie ma nigdzie odwołań do niego. 5.Edycja funkcji get_fattime(), dodaje te elementy struktury, wyrzucam rtc.c...
receive buffer toner empty motorola receive
sterowanie wentylatorem atmega mosfet zasilanie inwertera agregatu platan optimum
amilo xi1554 powietrzna pompa ciepła
Złącza dwubiegunowe SAE – czy można samodzielnie zaciskać lub lutować? Montaż, polaryzacja, narzędzia Radmor 5412 – zwiększenie wzmocnienia przedwzmacniacza gramofonowego MM/MC