Może tak? [syntax=c] typedef volatile unsigned char vu8; vu8 *buf; void setpixel(unsigned char x, unsigned char y) { vu8 *tmp; tmp=buf+(((int)y<<4)|(x>>3))... switch(x&7) { case 0:*tmp|=1; break; case 1:*tmp|=2; break; case 2:*tmp|=4; break; case 3:*tmp|=8; break; case 4:*tmp|=16; break; case 5:*tmp|=32; break; case 6:*tmp|=64; break;...
U mnie (Katowice) z DCF77 nie ma problemu, oczywiście zdarza się, że przez jakiś czas nie działa, ale przecież nie musi - wystarczy że złapie sygnał od czasu do czasu. Z tego co zauważyłem, to strasznie przeszkadza w odbiorze DCF77 komputer. Kiedy miałem zasilane układy przez USB to generalnie był problem, gdy je zasilałem osobno - z sieci lub z baterii...
Nie do końca umiem wyjaśnić, dlaczego C++ różni się tutaj od C, ale mam inną propozycję, rodem z ANSI C :) Przykładowy kod można przepisać: #include <stddef.h> typedef struct { int first; int second; int third; } type_t; #define ADDRESS 0x12345678 const int data = (ADDRESS + offsetof(type_t, second))*2; int main(void)...
Ad 1: [syntax=c]// bitfield definitions typedef union { struct { unsigned T2CKPS :2; unsigned TMR2ON :1; unsigned TOUTPS :4; }; struct { unsigned T2CKPS0 :1; unsigned T2CKPS1 :1; unsigned :1; unsigned TOUTPS0 :1; unsigned TOUTPS1 :1; unsigned TOUTPS2 :1; unsigned TOUTPS3 :1; }; } T2CONbits_t; extern volatile T2CONbits_t T2CONbits (at) 0x012;[/syntax]...
6 - każdą (debilną) funkcję jak ją nazwałeś da radę przerobić na normalną 7 - szukaj błędu po #endif zgodnie z komunikatem a nie wewnątrz warunku 8 - naucz się rzutowania typów bo w tym przypadku specyfikator volatile nieco zmienia traktowanie zmiennej slowo0. Poza tym jak używasz jakiegoś srodowiska, które domyślnie zamienia unsigned char na char -...
No to próbuję: [syntax=c] //* \section OA Original author //* Andy Gayne is the original author of this application note. //*/ //program z noty Atmela 136 //przerobiony na ATMega8, kwarc 11059200 i okrojony program #include <avr/io.h> #include <avr/interrupt.h> //! Pin mappings #define CHMAX 6 // maximum number of PWM channels #define PWMDEFAULT...
Niestety nie mam żadnego filmiku. Sprawuje się REWELACYJNIE. Za to podrzucę Ci gotowca bo ten na stronie wymaga sporo poprawek i domysłów co gdzie jest. Jest to wersja pierwotna która przechowuje w tablicy RAM. Funkcje których tutaj nie ma robią: LCDINIT - inicjalizacja wyświetlacza LCD_POS - ustawia pozycję: wiersz, kolumna LCD_CLS - czyści ekran LCD_PSTR...
Spróbuj tego. Nie testowałem, ale powinno zadziałać. HID.cpp [syntax=cpp] /* Copyright (c) 2011, Peter Barrett ** ** Permission to use, copy, modify, and/or distribute this software for ** any purpose with or without fee is hereby granted, provided that the ** above copyright notice and this permission notice appear in all copies. ** ** THE SOFTWARE...
To znaczy? Jak to miałoby wyglądać? Zaglądnij do tzw. "poradnika Szczywronka", znajdziesz tam przykłady takich funkcji, łącznie z definicjami. Sam dla F4 korzystam z takich: [syntax=c] typedef enum { /* Push-Pull; Low, Medium, Full, High Speed. */ gpio_mode_output_PP_LS = 512, gpio_mode_output_PP_MS = 576, gpio_mode_output_PP_FS = 640, gpio_mode_output_PP_HS...
https://obrazki.elektroda.pl/1570592100_... Witajcie, zapraszam na relację z konstrukcji zegara na PIC18F2550 napisaną w formie tutoriala, wszystko krok po kroku. Pokażę tu jak i z czego tworzyłem prosty projekt DIY na prośbę jednego z czytelników. Wykorzystamy tu wyświetlacze 7-segmentowe, rejestr przesuwny, obsłużymy przyciski a...
https://obrazki.elektroda.pl/2040620700_... Przedstawię tu spontaniczny projekt który został zrobiony w jeden dzień - dwukanałowy ściemniacz pasków LED oparty na PIC12F1612, zbudowany przy wykorzystaniu części z elektrośmieci. Oprócz PICa mój ściemniacz będzie korzystał z pamięci EEPROM do zapisu stanów jasności - jest to niezbędne,...
(...) no), może być np #define LED A3, gdzie A3 jest odpowiednikiem zarówno DDRA |= (1 << PA3), PORTA |= (1<<PA3) jak i PINA & (1<<PA3). Umożliwi to definiowanie tablic pinów (np. do sterowania wieloma ledami) jako: const uint8_t pinLED Tworzenie takiego frameworku dla AVR GCC, który pozwalałby na wygodny dostęp do poszczególnych...
AVE... We wszystkich układach, z którymi ja miałem do czynienia wartości były równane do prawej, inaczej pisząc little endian. W przypadku MCU ma to znaczenie tylko dla timerów/liczników i ADC, i tylko wtedy, gdy chcemy by to miało znaczenie. Dla przykładu weźmy PIC16F1827. Układ ma 16-bitowy Timer1, który jest inkrementowany albo przez wybrany pin,...
Może to dlatego, że GIOB to jest makro a nie zmienna. Wydłubałem trochę kodu z twoich plików źródłowych: [syntax=c]#define __IO volatile typedef struct { __IO uint32_t CRL; __IO uint32_t CRH; __IO uint32_t IDR; __IO uint32_t ODR; __IO uint32_t BSRR; __IO uint32_t BRR; __IO uint32_t LCKR; } GPIO_TypeDef; #define PERIPH_BASE ((uint32_t)0x40000000) #define...
Atmega 328P z kwarcem 18432000 (w specyfikacji mozna ja kręcić do 20MHz) spokojnie potrafi wygenerować trzy PWM przesunięte w fazie o 120 stopni z krokiem 256 z częstotliwością 50Hz przy tym nadając na USART o aktualnych warunkach jednego potencjometru. Pewnie że potrafi, ja na attiny 861 wygenerowałem 3 sinusy co 120 st z regulacją F od 20 do 250Hz...
Miłej zabawy: [syntax=c]/* ========================================... Name : nicePointer.c Author : tymon_x Version : Copyright : Your copyright notice Description : Nice Pointer (?) in C, ANSI-style ========================================... */ #include <stdlib.h> #include <stdint.h>...
Powinieneś użyć volatile, ale tutaj trzeba trochę uważać żeby się nie pogubić. Przykładowo mamy jakąś zmienną która musi być volatile bo używamy jej w przerwaniu lub coś w tym stylu. [syntax=c] volatile int jakasZmienna; [/syntax] Wskaźnik do takiej zmienne będzie wyglądać tak: [syntax=c] volatile int *wskaznik; [/syntax] W tym wypadku jest to wskaźnik...
Witam serdecznie. Mam taki problem. Otóż jakiś czas temu zafascynowałem się przydatnością pól bitowych przy programowaniu mikrokontrolerów. Fascynacja posunęła się do tego stopnia, że przepisałem cały plik lpc31xx.h po swojemu, dodając funkcjonalność w obsłudze rejestrów w postaci pól bitowych. Myślałem że ich stosowanie zdecydowanie poprawi czytelność...
Czy zmienna złożona typedef struct Modbus { volatile char ErrorFrame; volatile char ErrorOrder; volatile char TimeOut; volatile char Message; volatile char SendBlank; volatile char SupervisorTimer; volatile char ErrorAddress; }FlagProtocol; volatile FlagProtocol FlagModbus; zostanie zainicjowana automatycznie (do wartości 0) ?
Witam wszystkich. Zaprojektowałem i uruchomiłem zegarek z wyświetlaczami LED(SA10-21GWA) i układem PCF8583 współpracującym z mikroprocesorem Atmega8 oraz układami PCF8574AP na szynie TWI(i2c). http://obrazki.elektroda.net/21_12497604... http://obrazki.elektroda.net/58_12497606... http://obrazki.elektroda.net/95_12497605...
Panowie koledzy mam pytanie odnośnie zmiany biblioteki napisanej w Arduino na C . Czy dobrze to zmieniłem Byte na Char czy powinno być uint8_t ? boolean na bool. Tylko problem przy class odpowiednik w c to struct, ja zmieniłem na typedef struct ostrzeżenia znikły ale w pliku .c nie są widoczne funkcje tak jakby nie zadeklarowane w pliku .h do tego jest...
Na oscylogramie widać podstawę czasu przypadającą na działkę więc wrzuciłem aby ktoś porównał to z tym jak ma być, więc dlaczego twierdzisz że nie jesteś w stanie odczytać zależności czasowych? Co mi da wrzucenie przez kogoś swojego oscylogramu z działającej komunikacji? Ano to że wówczas dokonam właśnie porównania z timingami które ja mam u siebie...
Witam, Jakiś czas temu na forum pytałem o koncepcję prostownika mikroprocesorowego. Od tamtego czasu zacząłem działać i stworzyłem płytkę, wlutowałem komponenty i zacząłem pisać program i testować układy. Wszystko szło dobrze dopóki nie rozbudowałem programu i zacząłem testy pod obciążeniem. W aplikacji wykorzystuję 3 wejścia ADC do pracy z DMA: pomiar...
Tośmy razem posłali ;-) Rozdziel te inline'y na dwa pliki i po kłopocie. Albo lepiej zamiast szastać na lewo i prawo volatile to jeden typedef ? Albert
Przykład dla komercyjnego RealView Development Suite (RVDS): [syntax=c] typedef struct { volatile unsigned x: 1; volatile unsigned y: 1; } st __attribute__((bitband)); st s; int main() { s.x = 1; s.y = 0; for (;;); } [/syntax] Po kompilacji: [syntax=asm] 0800024c <main>: 800024c:4802 ldrr0, [pc, #8]; (8000258 <main+0xc>) 800024e:2101 movsr1,...
Cześć, Od kilku dni próbuję uruchomić obsługę pewnego modułu samochodowego, sterowanego poprzez magistralę CAN. Obsługa tego modułu wymaga wysłania pewnego zapytania, a następnie odebrania 4 ramek CAN odpowiedzi modułu - łącznie trzeba odebrać 32 bity danych. Udało mi się uruchomić nadawanie zapytania oraz odbieranie odpowiedzi, jednakże trzecia ramka...
Mój przebiegły umysł wypłodził coś takiego, napisałem to na luźno jako koncepcję, bez sprawdzanie tego w praktyce :P [syntax=c]/* * main.c * * Created on: May 19, 2012 * Author: tymon_x */ #include "stdint.h" #include "stdio.h" // BUTTONS ////////////////////////////////////////... typedef enum E_BUTTON_ACTION { Button_Down, Button_Release,...
Witam ponownie, próbowałem ogarnąć na początek funkcję eeprom_write_block. Oto fragment kodu: [syntax=c] typedef struct { // tu są chary, inty, tablice } TEngine; // zmienna w RAM volatile TEngine Engine; // Kopia będzie w EEPROM TEngine EEMEM eeEngine; // i gdzieś w kodzie dalej eeprom_write_block( &Engine, &eeEngine, sizeof(Engine) ); [/syntax] Przy...
Probowalem wstawic breakpointa za delay'em i wcisnac continue...ale program wtedy rusza i sobie dziala normalnie, a przeciez to nie main powinien sie zapetlac a petla nieskonczona while. Może postawiłeś tego breakpointa w miejscu w którym nie ma żadnej instrukcji, przez co debugger takowego breakpointa ignoruje? Nie działem nigdy w Insight, więc nie...
O to mój remix FSM: [syntax=c]/* * main.c * * Created on: Jul 12, 2012 * Author: tymon_x */ #include "stdint.h" enum e_state { STATE_IDLE, STATE_WRITE, STATE_READ }; static uint8_t state_idle(uint8_t); static uint8_t state_write(uint8_t); static uint8_t state_read(uint8_t); #define GOTO_READ ((uint8_t)(1 << 0)) #define GOTO_WRITE ((uint8_t)(1...
Tak Freddie Chopin, Twoja rozbiegówka LPC2103 po zmianie rozmiaru pamięci i przydzeleniu troche dla obsługi przerwań zadziałała. MEMORY { rom (rx): org = 0x00000000, len = 512k ram (rwx): org = 0x40000000, len = 32k } __user_system_stack_size = 1024; __fiq_stack_size = 0; __irq_stack_size = 128; __supervisor_stack_size...
Witam, ostatnio pisze bibliotekę służącą do eliminacji drgań styków w przyciskach. Będzie to działało w ten sposób, że w timerze wywołujemy funkcje obniżającą czas po którym możemy wcisnąć przycisk kolejny raz. Tak samo w kodzie - używamy funkcji z biblioteki która robi wszystko za nas :) Jednak napotkałem na taki problem - gdzie zastosować volatile...
Cześć Freddie, serdeczne dzieki za odpowiedź, odpisuję wolno bo czasu brak:(. Tak, pomyliłem się co do cyferek, bootloader zajmuje pierwsze 3 x 16kB (do 0xC000), po tym jest 16kB sekcji data a aplikacja zaczyna się na 0x10000. Sekcja data ma dwojakie zastosowanie: 1. Wymiana informacji pomiędzy aplikacją i bootloadrem (ustawienie flagi) + dane nieulotne...
ok flagi bitowe tworzę tak : typedef struct { unsigned char bit0:1, bit1:1, bit2:1, bit3:1, bit4:1, bit5:1, bit6:1, bit7:1; } FlagBits; typedef union { FlagBits Bits; unsigned char Byte; } Flags; volatile Flags flaga ; #define jakas_flaga flaga.Bits.bit0 ale potrzebuję tablicy o rozmiarze 128 komórek...
le nie ma tam słowa o FMC . No bo FMC po skonfigurowaniu to po prostu pamięć w przestrzeni adresowej - czyli po prostu piszesz lub czytasz do/z tego adresu. Czyli DMA memory to memory. Dla przykładu u mnie w projekcie teraz używam banku 1, 16 linii danych i szyny adresowej A2 jaki DC. Po sonfigurowaniu FMC [syntax=c]typedef struct { volatile uint16_t...
:arrow: sandrak24 Chcesz mieć tablicę, gdzie będziesz miał wpisane numery portów i bitów do ustawienia w programie w stan wysoki? O to chodzi? Bo, prawdę mówiąc, też nie rozumiem, co znaczy, że porty ustawione w tablicy... W każdym razie, jeżeli chodzi chodzi o to, co napisałem, to np. [syntax=C] typedef struct { volatile uint8_t *port; uint8_t bit_mask;...
Witam, Próbuje wgrać cokolwiek do nRF51822. Niestety nie posiadam ani J-link'a, ani zestawu ewaluacyjnego firmy Nordic ( jego posiadanie uprawnia do ściągnięcia z ich strony środowiska do tego układu), więc próbuję czy da się zaprogramować ten układ czymś innym. Na forum CooCox'a dowiedziałem się, że trzeba napisać własny algorytm flashowania, co też...
static volatile DWORD Timer1, Timer2; z kolei DWORD to: typedef unsigned longDWORD; probowalem tez wpisywac dokladnie takie same wartosci ja Ty w Twojej funkcji i nic nie pomogło pozatym do obslugi przerwania ustawilem migajaca diodke, jesli sie nie myle od razu po wywolaniu funkcji: SysTick_Conf(); powinno to przerwanie sie generowac co 10ms a wogole...
Mam pewien problem z programem który napisałem doprowadza on do zawieszenia pętli głównej programu ale nie całego procesora timery wciąż działają poprawnie. Co najgorsze to zawieszanie jest losowe raz na 5 minut albo raz na godzinę. Wydaje mi się że problem tkwi w tej procedurze. Proszę Was o "rzucenie" swoim fachowym okiem czy nie popełniłem jakiegoś...
Witam Mam problem z sterowaniem serwomechanizmem. Zrobiłem program który działa na mniejszych serwach TowerPro SG-90. Ale gdy podłącze serwomechanizm MG996r to po parokrotnym szybszym poruszaniu serwa serwo się zacina i kręci w jedną stronę. Zakres sygnalu do sterowania serwem to 190-240. Bardzo proszę o pomoc z góry dziękuję niżej wklejam cały mój...
składanie zmiennej przez |= miało pokazać co musiałbym zrobić aby uzyskać podobny kod wynikowy do tego co wygenerował kompilator. I ja tak nie piszę lecz takie coś na podstawie prostej operacji wygenerował kompilator. Tak wygląda mój kod bo widzę, iż ktoś sięciągle czepia przykładu jak mniej więcej wyglądać musiałby kod źródłowy aby uzyskać taki dziwny...
[syntax=c]#include "ublr.h" #define BM1ADDR 0xCB100000 #define BM1SIZE 0x10000 #define bm1ba ((uint8_t volatile *)BM1ADDR) #define BM1OP (IOM.GPI[1]) #define BM1WD (IOM.GPI[0]) #define BM1AC (IOM.GPO[1]) #define BM1MG 0xDB10 /* Possible memory write operations: byte at any address, * halfword at even address, word at 4N address */ // void (*reset)(void)...
Witam, używam w programie kilku „flag“, czyli zmiennych sterujących przebiegiem programu. Chcę je wszystkie zdefiniować jako POLA BITOWE i umieścić w strukturze, tak by leżały w jednym słowie 32-bitowym. Wartości „flag“ będą zmieniane zarówno w programie głównym jak i w przerwaniach. Dlatego zadeklarowałem zmienną jako volatile:...
Witam, pozwolę sobie na wykopaliska archeologiczne, ale myślę, że to może się jeszcze komuś przydać. Większość przypadków Hard Fault podczas działania DMA w STM32F1 powstaje przez błędną konfigurację kanału DMA przy użyciu biblioteki standardowej. Błędny fragment kodu: hlayer.c:167:43: warning: assignment makes integer from pointer without...
Jednak się da, bez konieczności tworzenia osobnych struktur i wpisywania nazw tych struktur w inicjalizacji innych struktur :) Nie wiem czy wszystkie kompilatory to zaakceptują.. typedef struct { u8 flags; // BTN_TRANSPARENT | BTN_TOGGLE | BTN_VISIBLE u16 y_size; u16 x_size; const u8 *file; } btn_vars_t; // STALA struktura we flashu... typedef...
A może coś takiego [syntax=c] typedef struct{ u08 b0:1; u08 b1:1; u08 b2:1; u08 b3:1; u08 b4:1; u08 b5:1; u08 b6:1; u08 b7:1; } volatile IO; IO * const pora=(IO*)&PORTA; #define PORTA0 pora->b0 #define PORTA1 pora->b1 ... [/syntax]
Witam serdecznie. Próbuję sobie stworzyć możliwość dostępu do rejestrów mikrokontrolera poprzez całą ich zawartość lub poprzez dostęp za pomocą pól bitowych. Generalnie nie jest to jakoś specjalnie trudne, ale utknąłem w jednym miejscu. Otóż chciałbym mieć możliwość dostępu do rejestru np.: PCONP w całości poprzez jego nazwę. I taki dostęp umożliwia...
Witam serdecznie! Natknąłem się na taki oto problem. Napisałem sobie funkcję, która służy do ustawiania rejestru Mach Control Register i wygląda tak: MCR ustawia jeszcze dodatkowo przerwanie dla Mach3 i reset dla Mach2. Czy ktoś z Was, szanowni Koledzy spotkał się już z takim problemem? Albo orientuje się skąd on może wynikać? Czyżby symulator był błędnie...
I bufor kołowy właśnie jest wykorzystywany w bibliotece Atmela :) (at)Piotrus_999 - uważasz, że powinienem napisać tutaj własne funkcje do obsługi uarta? Panie Tomku - rozumiem zamysł, poprawię kod :) Powiem może dokładniej co mam do zrobienia i dlaczego uparłem się na tę bibliotekę Atmela. Trochę mi nie wychodziło stąd wróciłem do początku żeby sobie...
Witam. Potrzebuję pomocy z dostosowaniem kodu napisanego na atmegę8 na attiny13. Domyślam się że największym problemem będą tutaj timery, ale jestem w ich temacie puki co zielony, a potrzebuję koniecznie(i niestety pilnie) odbiornika IR który zmieści się i będzie działał na attiny13. Jak całość kodu działa rozumiem(jest świetnie opisana komentarzami)...
typedef struct loadlibrary typedef volatile przerwać
amplituner wylacza ekranowanie miedź sygnał dekodera komputerze
sq6ade ctcss adobe acrobat reader
Ustawienie dekielka silnika Silma E3208N względem obudowy – szczotki, neutral-plane, regulacja Bosch Athlet ProPower 28V – wymiana szczotki nie przywraca działania, BCH6/65, brak reakcji