dołożyłem do gotowego programu zmienna nadaj #include <mega32.h> #define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7 #define FRAMING_ERROR (1<<FE) #define PARITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<OVR) #define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC)...
Witam . W PIC-ach 18 po wykryciu zdarzenia (przerwania) wykonywany jest skok pod adres wektora 0x08 dla high_priority lub pod 0x18 dla low_priority . Pod który adres wykonany zostanie skok zależy od konfiguracji odpowiednich bitów. Dodatkowo w kodzie należy umieścić pod jakimi adresami znajdują się wektory . Przykładowa obsłóga przerwania . void high_isr(void);...
Witam. Mam pewne wątpliwości związane z obsługą przerwań a mianowicie : w modelu PIC18xxx mamy do wyboru dwa rodzaje przerwań -compatible mode - wszystkie o tym samym priorytecie -priority mode ( podział na high i low priority ) Jeśli wybrałem priority mode i chce obsłużyć dane przerwanie to wygląda to tak: Dodano po 2 Doświadczalnie sprawdzone : działa...
Jeśli w PIC18 oscylator pracuje z 40MHz, to znaczy że taktowanie cykli procesora to 10MHz. Przy 1 Mhz PWM wychodzi na to, że co każde zbocze narastające procesor wykonuje tylko 10 cykli, co najprawdopodobniej jest za mało by w tym czasie obsłużyć przerwanie, wysłać wartość przez UART. Poza tym w kodzie brakuje funkcji obsługi przerwania. Przerwanie...
Jaki kompilator ? wskazujesz kompilatorowi ktora funkcja jest przerwaniem ? np w HT #pragma interrupt_level 1 void interrupt isr(void) { } Nie dziala rowniez dlatego ze kasujesz flage przerwania INTCON = 0xA0; przed instrukcja if ( T0IF == 1 ) INTCON = 0xA0; ta linia nie jest potrzebna
#pragma interrupt_handler ISR Dla jakiego kompilatora i MCU ten kod jest napisany? :)
Zamieszczam przyklad programu napisanego na kolanie, zmienia stan lini PC3 co okolo (LicznikMax*10ms ) - wychodzi co ok. 100 ms Gdybyś miał wątpliwości to podniosłem moje kości z krzesła przed komputerem po płytkę z AtMega32 i sprawdziłem w ukladzie - DZIAŁA! Kompilowany pod ICC626, polecam "Wizarda" ,pomaga w minute ustawić co potrzeba bez sięgania...
Pewnie kolega zakupił LaunchPad'a, też go mam i do tej pory udało mi się "zamigotać" używając identycznych funkcji ze znanych z programowania w C AVR'ów + magiczne konfiguracje samego MSP430. Ale banalny przykład z pierwszego postu świadczy o nieznajomości budowy mikrokontrolera. Sam przed chwilą szukałem w plikach nagłówkowych co oznacza (być może...
dzieki, a w takim kodzie napisanym w C co trzeba zrobic zeby dioda migała co 0,5s? ten sam uC... #include "htc.h" #include "lcd.h" __CONFIG(BORDIS&PWRTDIS&WDTD... #defineXTAL_FREQ4MHZ #define Freq 4 #include "delay.h" #define bitset(var,bitno) ((var) |= 1UL <...
A nie powinienes przed procedura obslugi przerwania napisac #pragma interrupt_level 1 jesli to jest pisane w PICC hitecha... Napisz moze jeszcze jaki kompilator i procesor.
funkcja inicjalizacyjna [syntax=c] void SystemInit(void) { //PORTH initialize TRISH = 0b00001111; // (0)-output (1)-input ADCON1 |= 0x03; // RH7...RH4 digital I/O MEMCON |= 0x80; // RH3...RH0 I/O pin enabled, external memory bus A19...A16 disabled //PORTA initialize TRISA = 0b01011111; //PORTB initialize //TRISB = 0b11111111; TRISBbits.TRISB4 = 0; INTCONbits.RBIE...
// Timer_A2 interrupt service routine #pragma vector=TIMERA0_VECTOR __interrupt void Timer_A (void) { if(CCR1<CCR0) { CCR1 = j+30; // CCR1 PWM duty cycle } else { CCR1=90; } } Eh.. no nie wiem niestety, co ja tutaj robie źle?
Bawię się ostatnio wspomnianym w tytule mikrokontrolerem i natknąłem się na problem z zewnętrznymi przerwaniami, którego nie potrafię obejść. Zaczynając od tego co działa: układ jest sprawny na pewno, jest podłączony, cały czas hula dioda sterowana przez timer z ustawionym przerwaniem na przepełnienie; podłączony jest również PICkit 3 przez icsp. Korzystam...
tak to jest wina wolnej obslugi przerwania bo na OC0 byl przebieg..a jak ustawilem OCR0 na 255 to przebieg juz nie gasnie....ale czas czestotliwosc podobnie cos ponad 250kHz..niecale 300KHz...ale dalem kwarc 25MHz i uzyskalem czestotliwosc 500kHz...ale procedura bedzie dluzsza wiec i tak trzeba bedzie napisac ja w assemblerze...dziekuje za pomoc i temat...
Tuż przed definicją funkcji clr_pin() dodaj: #pragma interrupt_level 0 Nigdy nie wywołuj tej samej funkcji jednocześnie w main() i ISR jeśli nie wiesz co robisz:). ISR może w dowolnym momencie przerwać wykonanie fukcji w main(), rozwali zmienne lokalne i NIE odtworzy ich po wyjściu. Niestety kompilatory Hitech nie obsługują software stack stąd funkcje...
Próbuję generować stałą częstotliwość na P1.0. Poniższy program nie działa jednak tak jak chcę. #include <msp430x20x3.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; P1DIR |= 0x01; // P1.0 output CCTL0 = CCIE; // CCR0 interrupt enabled CCR0 = 0; TACTL = TASSEL_2 + MC_2; // SMCLK,...
W tym fragmencie: /* Interrupt handlers */ #pragma vector=USART0_RXC_vect __interrupt void USART0_RX_interrupt(void){ ---------> LINIA: 72 unsigned char data; unsigned char tmphead; /* Read the received data */ data = UDR0; /* Calculate buffer index */ tmphead = ( USART_RxHead + 1 ) & USART_RX_BUFFER_MASK; USART_RxHead = tmphead; /* Store new...
[syntax=cpp]#define PER 32768 void main(void) { if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF) { while(1); } //1Mhz BCSCTL1 = CALBC1_1MHZ; //DCO=1MHz DCOCTL = CALDCO_1MHZ; //LFXTAL BCSCTL1 |= DIVA_0; BCSCTL2 = SELM_2 | DIVM_0;//MCLK =DCO //SMCLK = DCO BCSCTL3 = LFXT1S_0 | XCAP_1;//ACLK = 32768Hz //--------------------- Timer A -----------------------------...
Witam pin RxD powienien być ustawiony jako wejscie w rejestrze DDRD.0=0 ustawiony jako wejscie i PORTD.0 =1 podciagamy do gory inicjacja powinna być tak jesli coś u Ciebie jest inaczej sprawdz takie ustawienia void port_init(void) { PORTD = 0x03; DDRD = 0x02; } //UART0 initialize // desired baud rate: 9600 // actual: baud rate:9615 (0,2%) void uart0_init(void)...
Przerwanie źle działa - reaguje n zmianę stanu jednak tylko raz na kilkanaście zmian. Jeżeli uruchamiam procesor ze stanem wysokim na wejściu INT a INTEDG = 0 (zbocze opadające) to po starcie procedura obsługi przerwania jest wywoływana. Jeżeli jest tam zero to po starcie nie wchodzi do procedury obsługi. Przerwanie kiedy procesor pracuje wywoływane...
Witam Chcialbym zrobic zegar RTC na timerze TA <w sumie to na TB, ale narazie nic nie dziala>. chcialbym do tego użyc sygnału ACLK oraz trybu UPMODE? Ale pojawia sie problem: To jest programik ze stronki TI ale mi nie dziala, pewnie dlatego ze jest tryb LPM3, ale jak zmienie na LMP0 tez nie dziala.... #include <msp430x13x.h> void main(void)...
codevision avr atmega 8515 nadawanie i odbior /***************************************... This program was produced by the CodeWizardAVR V1.23.8a Professional Automatic Program Generator © Copyright 1998-2003 HP InfoTech s.r.l. http://www.hpinfotech.ro e-mail:office(at)hpinfotech.ro Project : Version : Date : 2006-07-02 Author : j Company :...
Kolego Prymulka , czy błędy które "wyrzuca" kompilator nic Ci nie mówią :?: Jakie "inkludy" podstawić , podpowiedzieli koledzy ;) //#include <inavr.h> #include <avr/signal.h> #//include <ioavr.h> #include <avr/io.h> #include "dataflash.h" Poniższe mówi samo za siebie: //#pragma vector = TIMER1_OVF_vect //__interrupt...
czemu nie tak: #pragma vector=TIMERA0_VECTOR __interrupt void Timer_A (void) { int temp; temp = TAR; int k; k = 6; for(;;) { for (m=1; m <800[b];[/b] m++) { if(counter1 == temp) { P1OUT ^= 0x02; counter1 = temp + k; k += 3; } } if ( counter1 == temp) { P1OUT...
kilka uwag jakie mi przychodza do glowy: 1.Program ma blad jezeli dobrze widze... #pragma interrupt_handler timer0_ovf_isr:10 void timer0_ovf_isr(void) { int v,u; TCNT0 = 0xB2; //reload counter value T0++; K=1; if ((T0 % 10)<2) { u=ReadADC(0); v=ReadADC(7); Error=(v-u); if (abs(Error)>=E_Min).....
Mam cos w tym stylu tylko niewiem do czego słuzy ten opis /***************************************... * FileName: main.c * Dependencies: p18f87j10.h, delays.h, 18f87j10i.lkr * Processor: PIC18F87J10 * Hardware: PICkit 2 * Compiler: MPLAB-C18 * Linker: MPLINK 2.33.00 or higher * Company: Microchip...
Mały test. Weźmy pierwszy przykład z brzegu: //**************************************... // MSP430xG46x Demo - Timer_A, Toggle P5.1, TACCR0 Up Mode ISR, DCO SMCLK // // Description: Toggle P5.1 using software and TA_0 ISR. Timer_A is // configured for up mode, thus the timer overflows when TAR counts // to TACCR0....
#pragma vector = <VECTOR_NAME> __interrupt void <ISR_NAME> (void) { // сюда вписыk... код обрабl... прерыk...
czy w maxach ustawiasz poprawnie nadawanie i odbior bo moze tu robisz blad // USART1 initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART1 Receiver: On // USART1 Transmitter: On // USART1 Mode: Asynchronous // USART1 Baud rate: 9600 UCSR1A=0x00; UCSR1B=0xD8; UCSR1C=0x06; UBRR1H=0x00; UBRR1L=0x17; Brakuje ci UCSR1A tu masz caly...
Witam, Oczywiscie licznik byl resetowany przed uruchomieniem, tylko nie dopisalem w poscie :). Dodano po 4 Witam, Zrobiem jak zalecono: wdr ldi R16, 0b00001000 /* 16 ms */ out WDTCR, R16 I chyba się potnę! Resetuje się i koniec! Dodano po 42 Witam, Jeszcze raz ja, więc zażenowany całą tą sytuacją usunąłem wszystko (prawie) z kodu i oto co zostało: #include...
#pragma config FOSFPR = XT // Oscillator (Internal Low-Power RC (No change to Primary Osc Mode bits)) #pragma config FCKSMEN = CSW_FSCM_OFF // Clock Switching and Monitor (Sw Disabled, Mon Disabled) // FWDT #pragma config FWPSB = WDTPSB_16 // WDT Prescaler B (1:16) #pragma config FWPSA = WDTPSA_512 // WDT Prescaler A (1:512) #pragma config WDT = WDT_OFF...
No to coś napisałem na AVRStudio 4.05.0.181 (na kolanie) :) . Co prawda na ATmega8 , ale przeportowanie to pestka(niektóre wektory przerwań do skasowania/zmiany nazwy i "2313def.inc" zamiast "m8def.inc" , prędkość kwarcu Xtal też do poprawki...), raczej tu chyba nie ma rozkazów niezaimplementowanych w AT90S2313 . ;included in next file - line ".device...
Witam. Mam problem z obsługą przerwań (PIC12f675). Napisałem procedury zgodnie z manualem i przykładami ale kompilator wywala mi błąd: Executing: "C:\Program Files\HI-TECH Software\PICC\STD\9.60\bin\picc.exe" -oodbierz.cof -modbierz.map odbierz.obj delay.obj rs232.obj --chip=12F675 -P -q -g --asmlist "--errformat=Error W programie są zdefiniowane trzy...
Witam !!! Nie napisałeś jakiego używasz kompilatora a w przypadku przerwań, wiele od niego zależy. W standardzie ANSI C nie opisuje się przerwań więc wyglądają one różnie. To kod dla standardowego kompilatora CodeVision. Obsługuje tylko odbiornik w przerwaniu pakując odebrany bajt do bufora. Pzdrawiam (M.) #include <mega8.h> #define RXB8 1 #define...
Czyli sam nie zrobiłeś nic w sprawie tego Timera? No nic. Tutaj masz przykład od samego TI: [syntax=c] //Gdzies w mainie: TBCCTL0 = CCIE; // TBCCR0 interrupt enabled __enable_interrupt(); ... ... delay(7500); //≈ 5 sekund ... ... //Koniec maina /***************************************... * BEGHDR * Function:...
Z góry przepraszam za zamieszczenie całego programu - i tak jest okrojony do minimum - ale gotowy do skompilowania (ICCAVR) Chciałem uniknąć pytań z cyklu a co masz jeszcze w programie - może się gryzie... Problem dotyczy wysyłania danych za pomocą interfejsu RS232 w procesorze AT Mega8 ( pewnie i innych ale ja wałkuje akurat ten ) Nie moge dojść dlaczego...
AVE... Z doświadczenia mogę stwierdzić, że to dla mnie nigdy nie miało znaczenia, jako że "detale" załatwia kompilator. Jeśli sam operuję rejestrami, to i tak muszę sięgnąć po notę katalogową by znać nazwy rejestrów, bitów w rejestrach i tego, co one właściwie robią. Jak to działa w praktyce? Poniżej prosty program dla PIC18F45K50, gdzie generowałem...
Witam, Jestem początkującym a raczej raczkującym programistą procesorów PIC. Chciałbym wywołać odbiór danych z UART poprzez przerwanie w środowisku microC. Nie mogę znaleźć deklaracji funkcji, która wykonuje polecenia z przerwania. Znajduję tylko przykład odbioru danych z funkcji main: [syntax=c] void main(){ UART1_Init(9600); // Initialize UART module...
Witam, Popełniłeś kilka błędów: - aby odblokować przerwania od przepełnienia timera 1 trzeba ustawić bit 2 a nie 5 w rejsestrze TIMSK - wektor przerwania od przepełniania timera 1 to nie 0x12 a 0x24 Dobrze jest przy pisaniu w C korzystać z funkcji dostarczanych wraz z kompilatorem "intrinsic function" takich jak __interrupt_enable, __interrupt_disable,...
Witam. Od kilku dni zawzięcie piszę programy w C dla mikrokontrolera PIC18F2550. Jako pierwszy program napisałem tradycyjnie obsługę diody LED. Następnie przyjrzałem się pliku wynikowemu tworzonego przez kompilator HI-TECH w darmowej wersji Lite. Mam pytanie co robi następujący zestaw instrukcji: [syntax=asm] 001C 0006 POP 001E CFEA MOVFF FSR0H, 0x4...
...Czekam na pomoc... Jeden obraz , potrafi zastąpić tysiąc słów :D #include <ioavr.h> #include <inavr.h> volatile unsigned char x=0; #pragma vector=INT0_vect __interrupt void INT0_ISR(void) { x++; } /* ... */ Poczytaj w pliku pomocy o dyrektywach #pragma - one wiele potrafią ;) Piotrek
#include <iom32v.h> #include <macros.h> #define clk 1 #pragma interrupt_handler timer1_ovf_isr:10 #pragma interrupt_handler uart0_rx_isr:14 #pragma interrupt_handler uart0_tx_isr:16 unsigned int inputs[64]; unsigned int outputs[64]; char databuf[4]; char inputs_addr[4]; char outputs_addr[4];...
AVE... LChucki ma ten problem, że on zna się na tych swoich ARMach i jest zaślepiony swoją miłością do nich. Wsadzałby je wszędzie, nawet tam, gdzie byle ATTiny czy PIC10/12F da radę. Dzielnikami i buforami rozwiązuje problemy, których by nie miał używając ośmiobitowca. A co do pisania prostych funkcji, to pozwolę sobie posłużyć się przykładem programu,...
Witam, jestem bardzo początkujący w picach i mam problem z przerwaniem od CCP2. Mam płytkę uruchomieniową picdem-z i muszę sprawić aby zbocze (najlepiej narastające albo stan wysoki) na RB3 wywoływało przerwanie (CCP2IF). Do tej pory (niedziałająca) konfiguracja pica wygląda mniej więcej tak (wycinki kodu): #pragma romdata CONFIG3H = 0x300005 const...
Konkretnie to próbuję pisać program pod obsługę. Ale nie mam obecnie niestety oscyloskopu. Spróbowałem napisać coś takiego : #include <msp430xG46x.h> #include <stdint.h> #include <intrinsics.h> unsigned int RxByteCtr; unsigned int RxWord; void main(void) { volatile uint16_t i; WDTCTL = WDTPW + WDTHOLD; // Stop WDT // P1.0...
Wygenerowany jest bezpośrednio z CooCoxa Linkera tutaj nie ma chyba jest zaszyty w środowisku. Wersja CoIDE to: Version: 1.7.8 [syntax=c] /** ****************************************... * (at)file startup_coide.c * (at)author Coocox * (at)version V1.0 * (at)date 20/07/2010 * (at)brief M0 M3 Devices Startup code. *...
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...
Chyba tak jest, tutaj plik startup_stm32f10x_md.c [syntax=c]/** ****************************************... * (at)file startup_stm32f10x_md.c * (at)author Coocox * (at)version V1.0 * (at)date 12/23/2009 * (at)brief STM32F10x Medium Density Devices Startup code. * This module performs: * - Set the initial SP * - Set...
ok dzieki za zainteresowanie najpierw BASCOM: oczywiscie w opcjach jest at90s8535 $crystal = 4000000 Config Portc = Output Config Portb = Output Config Portd = Output Config Adc = Single , Prescaler = Auto Dim A As Word Dim B As Word Dim C As Word Dim D As Word Dim E As Word Dim F As Word Dim G As Word Dim H As Word Cls Start Adc Do 'aDcsr.7 = 1 A =...
Zmieniłem : 2. change The initial stack pointer in the vector table: (void *)&pulStack[STACK_SIZE-1]... to (void (*)(void))((... long)pulStack + sizeof(pulStack)), w startup_stm32f10x_md_vl.c Dalej to samo. [syntax=c]/** ****************************************...
Tak na szybko. Zachęcony próbkami kolegi wygrzebałem MSP430F2274 zamontowany w eZ430-RF2500 i przerobiłem programik następująco: /***************************************... * * AUDIO DAC * MSP430 microcontroller: MSP430F2274 * ****************************************... #include "msp430x22x4.h"...
https://obrazki.elektroda.pl/3029878300_... Witajcie moi drodzy Oto trzecia część mojego praktycznego tutoriala dla ośmiobitowego mikrokontrolera PIC18F2550 od Microchipa i programatora SDCC . W tym temacie najpierw krótko omówię różne konfiguracje oscylatora PIC18F2550 - oscylator wewnętrzny (internal oscillator), zewnętrzny (zegarowy...
Witam Jestem początkującym użytkownikiem msp430 launchpad, jak i ogólnie początkującym jeżeli chodzi o programowanie. Ucząc się programowania, chciałem napisać kod, który po podłączeniu dwóch przycisków do mojej płytki pozwoliłby przy wciśnięciu jednego przycisku włączyć diodę czerwoną a po naciśnięciu drugiego przycisku wyłączałby diodę czerwoną a...
Dodano po 31 Kiedy debuguje program, krokowo, zaraz po a = 124; z linii b = log10(a); wskakuje do nieskończonej pętli - void HardFault_Handler(void). Tak jakby sam adres procedury wywoływał błąd sprzętowy.
Tak, wyczerpałeś, ale mi chodzi o to czy jeśli będę używał OCR1 to czy obsługę przerwania będę musiał wpisać w przerwaniu TCNT1 czy OCR1? z przepełnienia rejestru TCNT1 #pragma vector = TIMER1_OVF_vect __interrupt void przepelnienie_T11(void) { PORTB_Bit6=~PORTB_Bit6; } czy z przepełnienia rejestru OCR1? #pragma vector = TIMER1_COMPA_vect...
Witam, Mam problem z uruchomieniem UARTU na ATmega128. Jako kompilatora używam CodeVisionAVR. Program się kompiluje lecz nic nie mogę wysłać z procka do kompa, co może być źle w kodzie: #include <mega128.h> #define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7 #define FRAMING_ERROR (1<<FE)...
Próbuję odebrać dane z modułu GPS fgpmmopa6e za pomocą wspomnianego mikrokontrolera w wersji niskonapięciowej (3.3V). Oba elementy znajdują się już jednej płytce PCB, GPS został przylutowany zgodnie z notą katalogową ([url=http://download.maritex.com.pl/pdf... s.22) i sam w sobie działa (wnioskuję po tym że podłączona do pinu...
Mam jeszcze jedno pytanie czy przerwania też trzeba deklarować w pliku "h" ?? tak jak np. #pragma vector = PCINT1_vect __interrupt void PCINT1_ISR(void); tylko , że mój kompilator tego nie łyka Dodano po 2 flapo213 gdybym nie dodał *.c w Makefilu pozostałe funkcje by sie nie kompilowały.
#include "io430.h" #include "intrinsics.h" int licznik1=50, licznik2=100 ,licznik3=150 ,licznik4=200; #define PER1 50 #define PER2 100 #define PER3 150 #define PER4 200 void main(void) { WDTCTL = WDTPW + WDTHOLD; // Clock Setup BCSCTL2 = DIVS_3; // Timer Setup P1DIR |= (BIT1 | BIT2 | BIT3 | BIT4); TACCR0 = 50;...
#include <intrinsics.h> #include <msp430x20x3.h> int licznik1=50, licznik2=100 ,licznik3=150 ,licznik4=200; #define PER1 50 #define PER2 100 #define PER3 150 #define PER4 200 void main(void) { WDTCTL = WDTPW + WDTHOLD; BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; // Clock Setup //BCSCTL2 = DIVS_3; // Timer Setup P1DIR |= (BIT1...
Witam Poniżej kod programu, który muszę zmodyfikować, by umożliwić ustawienie za pomocą dwóch przycisków (port1) aktualnego czasu wyświetlanego zegara. Proszę o wskazówki. Z góry dzięki ! //**************************************... // MSP430FG4618 Experimenter's Board Real Time Clock in Low-power mode // // MSP430FG4618...
Dlaczego, gdy chcę ustawić by timer_a był taktowany zegarem aclk, ten nie działa poprawnie ? większość ustawien jest podobnych: void main(){ WDTCTL=WDTPW+WDTHOLD; P2DIR|=0x02; BCSCTL1=XTS; TACCTL0=CCIE; TACCR0=32768 TACTL=TASSEL_1+MC_1; __BIS_SR(LPM3_bits+GIE); } #pragma vector=TIMERA0_VECTOR __interrupt void Timer_A(void){...
Zmieniłem ISRa na taki: #pragma vector=TIMERA1_VECTOR __interrupt void Timer_A(void) { switch (TAIV) // które źródło zgłosiło { case 0x0002: break; case 0x0004: break; case 0x000a: TACTL |= TACLR; // to kasujemy licznik break; } } Licznik się resetuje (o ile debugger nie kłamie), ale dalej LEDa podpięta...
Witam, złożyłem płytkę, napisałem kod i coś nie działa, narazie podam kod bo płytka śmiga byłbym wdzięczny za sugestie co jest nie tak że to nie chce działać, kod zbudowany po części w CodevisionAVR. Wyświetlacz jest na wspólnej Katodzie stąd mój wniosek że aby zaświecić jakiś segment muszę wysłać 0 na pin, a aby go zgasić 1. Jeżeli źle myślę to poprawcie...
Poniżej masz programik generujący przebieg o częstotliwości 1kHz (kwarc 12MHz) na pinie p3.5. Wycięty z większego programu, sprawdzony, działa. T2 pracuje jako timer z automatycznym przeładowaniem. Trzeba pamiętać, że (w przeciwieństwie do T0 i T1) w procedurze obsługi przerwania od przepełnienia T2 należy programowo zerować flagę TF2. #include <reg8252.h>...
Witam. Chciałem napisać następujący program: Dane przesyłane są z komputera przez UART1, a następnie te dane chciałbym przesłać dalej, za pomocą UART0. Na razie połączyłem sobie, w UART0 RxD z TxD za pomocą rezystora 200Ohm (taki loopback do testów). Czyli jak na razie chciałem uzyskać następujący przepływ : komputer -> UART1 -> UART0 -> UART0...
np tak: źródło jest wygenerowanie automatycznie przez Codevision ale jak się przyjżysz to załapiesz o co chodzi :) i będzie to dla ciebie jakaś pomoc dla własnych modyfikacji #include <mega32.h> #define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7 #define FRAMING_ERROR (1<<FE) #define...
AVE... XC8 nie ma dobrej biblioteki do obsługi LCD 16x2. Ta stworzona przez Microchip działa tylko przy określonej kolejności podłączania pinów do wyświetlacza i nie ma poprawnej inicjalizacji trybu 4-bitowego, inna, dostępna w odmętach internetów nie obsługuje wszystkich modeli wyświetlaczy oraz funkcji. Łącząc kawałki z obu stworzyłem potworka, który...
Witam, w końcu udało się , komputer widzi urządzenie jako HID, robiłem już pierwsze testy wysyłania i odbierania wiadomości i wszystko jest Ok, Stało się tak przez podmienienie startup oraz linkera. Trochę pochodziłem po necie w poszukiwaniu i znalazłem całkiem ciekawą stronę : http://gandalf.arubi.uni-kl.de/avr_proje...
Witam. U mnie zrobone jest to w ten sposb. Nie sprawdzalem tego na symulatorze, kodzik dziala w makiecie. Korzystam z IAR v3.20. #define INT_PIN 0x01 [....] P1IFG = 0x00; // Kasowanie flag przerwań na P1 P1DIR &= ~INT_PIN; P1IES |= INT_PIN; P1IE |= INT_PIN; // Zezwolenie na przerwanie _BIS_SR(GIE); // Globalny bit przerwania [...] #pragma vector = PORT1_VECTOR...
Witam. Napisałem prosty program, by przetestować wyjścia PWM w attiny13. Podczas kompilacji wyskakują następujące błędy: UNDEFINED SYMBOL 'OCROA' & UNDEFINED SYMBOL 'OCROB' Przeszukiwałem internet, ale niestety nie znalazłem rozwiązania problemu. Ogólnie rzadko porusza się temat attiny13 jak i środowiska Code Vision... Oto program: /***************************************...
https://obrazki.elektroda.pl/8335986900_... Witajcie moi drodzy Przedstawię tutaj przykład użycia 32-bitowego mikrokontrolera PIC32MX250F128B w roli hosta USB obsługującego pendrive (zapisującego i odczytującego z niego dane). W temacie opiszę najpierw płytkę którą pod tego PICa zaprojektowałem, a potem przykładowe kody obsługi pendrive...
Witam. Według mnie zasadniczy problem (poza ciekawym zastosowaniem funkcji Subnumber ;) leży w umieszczeniu wyświetlania z delayami w przerwaniu. Wyświetlanie trwa dłużej niż czas pomiędzy kolejnymi przerwaniami. Najprostszą opcją byłoby przeniesienie wyświetlania do programu głównego na przykład tak: /*wyświetlacz LED dołączony do P0, stan aktywny...
#include <mega128.h> #define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7 #define FRAMING_ERROR (1<<FE) #define PARITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<OVR) #define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC)...
Witam, mam dziwny problem z moim programem na '51(w C). Bawiłem się w transmisję szregową i utknąłem. Programik jest prosty: bufor odbiorczy na przerwaniu - wpisuje mu coś z klawiatury (HyperTerminal) on odbiera i umieszcza to w buforze, potem wypisuje funkcją printf to co tam jest. Problem w tym, że jeśli użyje funkcji delay() to program sie wiesza...
Witam wszystkich czy ktoś mógłby podpowiedzieć jak uzyskać odliczanie czasu w sek na atmedze? w programie CodevisionAVR uzyskuje taki kod w którym niby jest już jakiś wietrzny timer ustawiam go nawet na 8MHz ale nie wiem jak wyprowadzić to odliczanie sekund np na lcd wystarczy żeby ktoś podpowiedział to a dalsza cześć czyli odliczanie minut i godzin...
Witam Problem rozwiązany, nie wiem na jak długo ale po zaprogramowaniu działa prawidłowo. Program składa się z kilku plików, między innymi z tego w którym jest program odpowiedzialny za obsługę wyświetlacza. Zapomniałem że w pierwszej linii mam napisane #pragma SMALL. Dopiero po zamianie tego parametru w tym miejscu (lcd.c) na COMPACT wszystko ruszyło....
To znowu ja... staram się teraz zrobić 2 bufory: nadawczy i odbiorczy - nadawanie i odbiór w przerwaniu. Jeśli ktoś ma opanowany ten sposób transmisji to proszę o sugestie i porady. Kod mojego programu zamieszczam niżej. Niestety nie działa tak jakbym chciał - nie wiem jak zainicjiować nadawanie. Gdy ustawie flage TI to jest generowane przerwanie ale...
Witam, chcę zrealizować otwarty projekt miernika częstotliwości opartego o mikrokontrolery PIC (do testów używam PIC16F1459). Poniżej wstawiłem, pierwszy prototyp. Aktualnie program działa, ale... poprawnie zlicza tylko do ok 4kHz - i tu mam pytanie do Was, czy może ktoś wie jak ten wynik poprawić (rozwiązania programowe, inne podejście do problemu)...
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...
TMF - mój kompilator to IAR, więc nie dogadamy się po bibliotece avr-libc. Jeżeli nie macie pomysłu jak załatwić to w kodzie, niestety będę zmuszony usiąść do bardzo słabo napisanego manuala IAR`a, nie ukrywam, że wieczór przed tym to katusze. Myślałem, że konsultacja z Wami natchnie mnie jak zrobić to w kodzie. Dodano po 6 Tadzik, mamy coś takiego...
https://obrazki.elektroda.pl/9994348800_... Zapraszam na szczegółowe sprawozdanie z budowy prostego termometru/higrometru na bazie części znalezionych w szufladzie. Najpierw dobiorę i uruchomię tutaj wyświetlacz, potem złożę i wykonam niezbędny układ na płytce uniwersalnej, a na koniec do niego dodam czujnik AHT20, tak by móc odczytywać...
Witam! Mam problem z popranym odbiorem danych. Kod wygenerowany przez kreatora jest przedstawiony na listingu. I teraz pytanie. Mam odebrać z odbiornika widomość o długości 154 bajtów. Wiadomość ta przychodzi co 1 sekundę i zaczyna się zawsze czterama takimi samymi znakami : (at)(at)Ha Próbowałem już robić to z pętlą, by odbierać 154 znaki, i potem...
1. Nie widzę powodu wchodzenia najpierw w tryb system, a potem w user To resztki techniki "copy & paste" - ostatnio sam zauważyłem, że tryb user i system mają wspólny stos. 2. Ja zostawiam MCU w trybie system po startupie - nie widzę żadnych zalet w trybie user jeśli nie mam systemu operacyjnego, a będą pytania czemu mi nie działa ... Ma to sens. Jak...
Staram się od jakiegoś czasu uruchomić komunikację z kartą pamięci SD przy pomocy biblioteki "fatfs" na układzie PIC32MX695F512H, bezskutecznie, funkcja disk_initialize(0) , zwraca mi ciągle wartość "1" (STA_NOINIT). Karta jest podłączona w podstawce pod napięcie 3,3V, takie samo jak cały układ. Piny MOSI => SDO3, MISO => SDI3, SCK => SCK3,...
Potrzebuję pomocy przy zamianie kodu "RFID Reader", tzn. żeby zamiast wyświetlania kodu karty na LCD uzyskiwać odpowiedni poziom na wyjściu 1z10 i czy jest to możliwe do zrealizowania na atmega8? Chciałbym użyć 8 ostatnich cyfr kodu karty. Posłużyłem się gotowcem, który był już na elektrodzie (dopiero uczę się bascoma i nie wiem jak się do tego zabrać):...
podaj kod źródłowy w języku C na mikrokontroler PIC16, dekodujący sygnał DCF77. Założenia są takie, że przebieg z odbiornika DCF77 podawany jest na wejście przerwania zewnętrznego INT0 a program ma uzupełnić odpowiednią strukturę zawierającą pole daty i czasu z dokładnością co do sekundy. Program bez funkcji delay, ma działać jako maszyna stanów. Chętnie...
https://obrazki.elektroda.pl/2718988000_... Witajcie moi drodzy W tym temacie pokażę jak każdy początkujący może najprościej uruchomić w warunkach amatorskich mikrokontroler PIC32MX795F512H bez potrzeby trawienia/kupowania pod niego konkretnego PCB. Oprócz minimalnego niezbędnego układu pracy tego mikrokontrolera umieszczę tutaj kilka...
https://obrazki.elektroda.pl/4950580000_... Witajcie moi drodzy W tym temacie poznamy podstawy przerwań i timerów w PIC18F2550 . Na początek będzie krótki wstęp teoretyczny, a potem wszystko przerobimy dokładnie na praktycznych przykładach. Do lektury tematu przyda się ogólna wiedza na temat przerwań i programowania w C, choćby taka...
Spoko :D WYKAZ ELEMENTÓW D1, D2, D3: IR nadawcze D4, D5, D6: LED T1, T2, T3: IR odbiorcze T4, T5: BD139/BC547 T6, T7: BD140/BC557 R1: 68 Ω R2, R3, R4, R12, R13: 10 kΩ R5, R6, R7, R14, R15: 1 kΩ R8, R9, R10, R11: 500 Ω PR1: 100 kΩ (helitrim) US1, US2: NE4558 US3: 7805 US4: PIC16F84-04/P zaprogramowany X: 4 MHz C1, C2: 33 pF C3,...
ehhhh... no dobra... dam je jeszcze raz, może więcej osób z tego skorzysta. Pochodzą one z jednego numeru Elektroniki praktycznej (nie pamiętam dokładnie z którego). Jest to robot typu Line Follower (podąża za czarną linią). Zasilany jest jedną 9V baterią. Na schemacie masz układ zasilający, mostek H (który w tym wypadku musisz zdublować, po jednym...
1. Przerwanie ma tylko stwierdzić czy nastapiło krótkie czy długie wciśnięcie na podstawie ilości cykli (wiem, że powinno być na timerze, ale tak daleko jeszcze nie jestem). Chyba tak można zrobić, no nie? 2. No rozumiem, ale to chyba nie jest jakiś wielki błąd? 3. W moim kodzie przecież najpierw jest deklaracja. P1IE = BIT3; P1IES = BIT3; A włączenie...
Witam. Programuję sobie urządzenie w którym mam zajęty cały PORTB a potrzebuję podłączyć przycisk tak aby jego przyciśnięcie wyzwalało przerwanie. Wymyśliłem, że użyję do tego pinu T1CKI z którego sygnał użyję do przepełnienia timera1 ustawianego każdorazowo na wartość 0xFFFF. Timer1 inicjalizuję w poniższy sposób: krzysiek_krm napisał: "Zapomnieliście...
Sorry, oczywiście ten plik należy stworzyć samemu. To jest z projektu testowego: [syntax=c] #include <stm32f4xx.h> #include <usb_dcd_int.h> #include <usbd_ioreq.h> #include <usbd_usr.h> extern USB_OTG_CORE_HANDLE USB_Dev; USBD_Usr_cb_TypeDef USR_cb = { USBD_USR_Init, USBD_USR_DeviceReset, USBD_USR_DeviceConfigured, USBD_USR_DeviceSuspended,...
Witam. Przejrzalem CALE forum w poszukiwaniu rozwiazania mojego problemu. Probowalem wszystkiego co bylo podane w postach. Mam problem z polaczeniem tn2313 z ds18b20. zegar: kwarc 4MHz (testowalem juz na wew 1-8MHz bez rezultatow - ckdiv8 konfigurowalem poprawnie 1dis 0 en) podlaczam do portu d pod rozne piny. Od strony programowej tez powinno byc all...
Witam, Jak w temacie, gdy włączę UART0 przez początkowy czas startu procesora wszystko działa poprawnie, po pewnym czasie który jest różny 30 - 60 sekund przestaje działać UART1. Dodam, że testowałem to przy wszystkich funkcjach wyłączonych, wstawiłem tylko w przerwanie UART1 i UART0 miganie diody gdy przychodzą dane. void uart_0(void){...
Mam do was prośbę pomożecie mi naprawić ten kod tak aby działał na PIC16F84.Ma to być częstotliwościomierz 20 Hz - 100kHz. Męczę się już od tygodnia i napotykam to nowe problemy. #include "int16CXX.h" #pragma origin 4 #define lcd_rs 0 //definicja bitu portu dla lini RS #define lcd_e 1 //definicja bitu portu dla lini E #define CR 0x0a #define...
https://obrazki.elektroda.pl/2568884200_... Witajcie moi drodzy Zapraszam na kolejną część mojego tutoriala PIC18F2550 i kompilatora SDCC . W tej części zademonstruję jak używać wyświetlacza 7-segmentowego z PIC18F2550 . Kod obsługi wyświetlacza będzie oczywiście napisany w oparciu o przerwania i timery . Cały proces powstawania układu...
Fragmenty niezwiązane z tematem usunąłem. Prosze aby osoby wypowiadające się trzymały się tematu. Jak wiadomo wartość ta może przyjmować -32768...+32768. To wtedy dajesz próg dla którego będzie się przekaźnik włączał a dla którego wyłączał, tutaj naturalnym progiem jest '0'. Ale przed włączeniem możesz dać dodatkowy liczniki który będzie zliczał impulsy,...
Witam, przenoszę program, jak w temacie, pierwotnie uruchomiony na pic32mx360f512. Jak narazie nie rozwiązałem następujących problemów: a) nie potrafię spowodować aby SPI1 startował z impulsem wyzwalającym w trybie framed slave mode. Pin wejścia SS1 przydzielony, impulsy na pinie widoczne na oscyloskopie, a transmisji przez SPI brak. b)Łańcuchowanie...
pragma language pragma config dyrektywa pragma
zasięg telewizji naziemnej dźwięk jednej słuchawce lenovo wartość skuteczna napięcia tętnień
galmet wyswietlacz galmet wyswietlacz
Zipp Raven 125 2015 nie odpala - diagnostyka i rozwiązania Schemat zasilania dla Blaupunkt Porto 32