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...
Jestem na tej grupie pierwszy raz, wiec Wszystkich goraco witam!!! Witamy na FORUM... ;) FAQ Działu Mikrokontrolery przeczytane ? ;) Chciałbym zaznaczyc, ze przejrzalem wszystkie archiwalne posty na tej grupie zwiazane z tym i podobnymi problemami i niestety nie znalazlem rozwiazania. Teraz do rzeczy: Jest to mój pierwszy projekt i mam problem z jego...
Dzięki za wskazówkę ;) Jeśli dobrze rozumiem w kodzie: [syntax=c] PORTB = 1<<PORTB3 | 1<<PORTB2; DDRB= 0<<DDB4 | 0<<DDB3; MCUCR = 1<<PUD; [/syntax] ?
Jezeli juz to tak: $crystal = 1000000 Config Portb=Output Portb = 255 Do Toggle Portb.1 Waitms 500 Loop Pozdro Dexter
Witam wszystkich :) Nie będę owijał w bawełnę. Mam problem zapewne banalny ale ja nie potrafię sobie z nim poradzić. A więc zbudowałem układ do obsługi kart pamięci Compact Flasch na bazie mikrokontrolera Atmega162 posiłkując sie serią artykułów z Elektroniki Praktycznej, który rozpoczął się 02/2004r. Układ ten poza pamięcią ma mieć jeszcze wbudowany...
Zmodyfikowałem kod i wywaliłem delay z przerwania: [syntax=c] ISR(TIMER1_COMPA_vect) { int8_t i; unsigned char liczba[6] = {0x82, 0xD7, 0x23, 0x43, 0x56, 0x4A}; for(i=5; i>=0; i--) { PORTB = liczba[i]; if(i==0) { flaga = 1; } } }[/syntax] ..ale gdy program zostaje załadowany, na wyświetlaczu pokazuje się tylko 0 i nic nie chce ruszyć, nie mam za bardzo...
Witam. Mam taki problem. Próbuję skomunikować ze sobą dwa uC. Docelowo będą one skomunikowane po RS485, ale teraz w fazie testów próbuję je połączyć normalnie po UARCie. Skrosowałem TXD i RXD dwóch Atmeg. Wysyłam z Atmega162 znak 0x3A, natomiast na Atmedze32 włącza się przerwanie od odebrania (dioda niezależna od znaku odebranego się zapala ) ale nie...
$regfile = "m162def.dat" $crystal = 11059200 Config Graphlcd = 240 * 64 , Dataport = Portb , Controlport = Portd , Ce = 5 , Cd = 4 , Wr = 6 , Rd = 7 , Reset = 4 , Fs = 5 , Mode = 8 Cursor On Cls Dim D As Word , Z As Byte Config Timer2 = Timer , Prescale = 1024 Load Timer2 , 240 On Timer2 Sekunda Enable Interrupts Enable Timer2 Do Loop Sekunda:...
Poniżej inicjalizacja UARTu, funkcja wysyłająca i minimalny kod który chciałbym uruchomić w najprostszej wersji. [syntax=c]void initUart0() { PORTB |= (1 << PORTB2); DDRB &= ((0 << DDB4) | (0 << DDB3)); MCUCR |= (1 << SFIOR); /* Ustaw prędkość transmisji */ UBRR0H = (BAUD_PRESCALE0 >> 8); UBRR0L = BAUD_PRESCALE0; /*...
Wreszcie z waszymi uwagami napisałem działający kod. Wklejam, żeby było dla inncyh. [syntax=c] #define SDA 1 #define SCL 0 #define IIC_WAIT0x08 // portb = 0, ddrb=0 - wejście w stanie wysokim #define SET_SDA REG->DDRB &=~(1<<SDA) #define CLR_SDA REG->DDRB |= (1<<SDA) #define GET_SDA REG->PINB & (1<<SDA) #define SET_SCL...
Witam. Mam taki problem. Próbuję się bawić z UARTem. Program (tzw. echo) działa poprawnie - sprawdzam za pomocą Br(at)y terminala. Natomiast chciałem pójść dalej i wykorzystać przerwanie od odebrania. no i niestety mi niezbyt to działa (w sensie nie wchodzi w to przerwanie). A oto kod: #include <avr/io.h> #include <avr/iom162.h> #include...
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...
Witam, pracuję obecnie nad pewnym projektem, w którym używam 32 kanałów PWM na procesorze Atmega162 generowanych programowo wg. dokumentu AVR136, program napisany w języku C. Mogę powiedzieć, że generalnie wszystko działa zgodnie z oczekiwaniami, modulacja działa prawidłowo, jednak chciałbym poznać, jaki procent czasowy zajmuje obsługa przerwania. Nie...
A możesz mi powiedzieć skąd Ty bierzesz takie informacje? z dokumentacji, z internetu, z doświadczeń i prób. A czy przy okazji mogę się podpytać o taką rzecz. Mam układ ATMega162 z zewnętrzną pamięcią RAM 62256. Całość jest pisana w AVR-GCC używając AVR Studio. Potrzebuję aby ta pamięć RAM była tylko do przechowywania takich danych jak np tablica....
Nie mam takiego potencjometry - podaję -12V wprost z ATX, z którego podaję też +5V na MCU. Znalazłem taki programik dla BASCOM'a na którym zawsze pojawia się tylko linia długości całego ekranu w różnych miejscach. Niestety, jak wpiszę typ procesora taki jak mam, czyli Atmega162 - nic się nie pojawia. Gdy jest wpisane Atmega32- jest kreska i do niczego...
Podłączyłem ten wyświetlacz pod atmega 128 zamiast atmega162, do komunikacji z S65 wybrałem portb.0-portb.4. Używam kwarcu wewnętrznego 8Mhz jednak lcd nie daje znaków życia. Wszystko mam podłączone dobrze, bo sprawdzałem. I LCD jest sprawny, bo wcześniej działał na atmetga162. W czym może być problem? czy podłączenie musi być koniecznie do portu b?
Witam. Wyrzuć CLS z pętli DO - LOOP, wstaw przed DO. Czy napewno port mikrokontrolera jest prawidłowo podłączony z LCD, zgodnie z konfiguracją w programie. Dla próby R/W podłącz bezpośrednio do masy. Dlaczego nie sterujesz LCD z jednego portu ? Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portd.4 , Rs = Portd.2...
nie tylko porty sie różnią ale też końcówki, może tu tkwi problem jak dioda była zawsze do tego samego pinu podłączona 1) cały PortB 2) PD.1 3) PB.4 EDIT: skoro działa pierwszy program (swoją drogą nie powinien bo nie ma tam nigdzie pętli :\ ) spr coś takiego #include <avr/io.h> #include <util/delay.h> int main(void) { DDRB...
Temat powinien polecieć do kosza ale... :D Na początek musisz wiedzieć że do odczytu danych z końcówek portu służy rejestr PINx czyli w twoim przypadku PINA. Po za tym musisz uruchomić wew. rezystory podciągające (pull-up) czyli piszesz np. PORTA = 255. Na koniec powinno to wyglądać tak : PORTB = PINA . Po więcej informacji sięgaj do helpa tam wszytsko...
Witam, Wprowadzam sobie do mojej atmegi taki kod. Podaje na zasilaniu raz 5V bezposrednio z programatora innym razem probuje przez stabilizator 3,3 V. Atmega dostaje napiecie kolejno albo 5 albo 3,3, niestety na wyjsciach napiecie nie sięga nawet 1V... Co jest nie tak ?? Co robie zle ? [syntax=c]#include <stdlib.h> #include <avr/io.h> #include...
Masz racje. Niezła gapa ze mnie. Ale problem polega na tym, że po zmianie pętli program nadal nie chce działać :( Po długich próbach implementacji róznych prostych programików zauważyłem jedną rzecz. Otóż pisząc programik jak poniżej: void main(void) { ..... PORTB=0xF3 //diody nie świecą ........ PORTB.0=!PORTB.0 // zapelenie jednej PORTB.1=!PORTB.1...
Witam! Pisze bo juz nie mam pomyslu co to moze byc, zaznaczam ze przeczytalam wszystkie posty odnosnie problemow z przerwaniami w atmega162, jeden temat byl nawet podobny ale rozwiazanie tam zawarte nie bylo pomocne w moim przypadku. Ale do rzeczy: W ponizszym programie po wywolaniu przerwania INT0 wywoluje sie INT1. Symuluje program w komplitaorze...
Spróbowałem jeszcze czegos takiego w odbiorniku. To dioda mrugnie dwa razy czyli tak jak do testu i potem swieci caly czas. co oznacza ze chyba nic nie przychodzi nie ?? ;/ [syntax=c]#include <stdlib.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <avr/pgmspace.h> #include <string.h>...
Mam problem z UART w ATMEGA162 16PU Procesor z kwarcem 11059200 Hz zasilany 3,3V Potrzebuje prędkość 9600 b/s #include <avr/io.h> #include<inttypes.h> #include<avr/interrupt.h> #include <util/delay.h> #include <avr/wdt.h> //#include"../lib/rs232.h" #define FOSC 11059000// Clock Speed #define BAUD 9600 #define...
Witam!!! Mam pytanko w dosc popularnym temacie na forum ale tego co potrzebuje konkretnie nie znalazłem. Czy udało sie komus opanowac opsługę rc5 w baskomie tak zeby działało na przerwanie tak jak w tym programie ktory znalazłem na forum, ale niestety podobnie jak u kolegi u ktorego znalazłem to w temacie umnie tez sie wiesza!!! kod: $regfile = "m8def.dat"...
Witam, poniżej zamieszczam kod z Bascoma mojego sterownika BMS, w tej chwili kontroluje temperaturę, czas, Rs232, LCD 2x16. Obsługa z klawiatury lub pilota RC5, w obecnej chwili rozwiajm go o dostęp przez internet. zajmuje ok 8kb pamięci więc w A162 będziesz miał jeszcze drugie tyle pamięci. Ja kożystam z A32 Pozdrawiam. PS. daj znać jak zakończysz...
1. Zamiast konsolaka pod win polecam coś z większymi możliwościami : http://sites.google.com/site/terminalbpp... 2. Przejrzenie tego tematu byłoby wskazane: http://www.elektroda.pl/rtvforum/topic53... 3. Skoro używasz breq, to już z brne w następnej linijce daj sobie na luz - jak coś jest wykluczone jako zerowe/tożsame to jest niezerowe/różne......
Witam Muszę stworzyć układ w którym bedę używał 8 czujników DS18B20 , i każdy musi pracować na osobnym pinie. Nie mogę podpiąć wszystkich na jednej linii i odpytywać ich po ich ID. Kiedyś robiłem sterownik w którym odczyty robiłem w ten sposób: Sub Odcz_temp1 Config 1wire = Portb.0 1wreset 1wwrite &HCC 'opuszczenie zapisu numeru ID 1wwrite &H44 'start...
Witam, Przesiadłem się właśnie z procka ATmega 16 na Atmegę 162 z powodu nie wystarczającej liczby portów. Napisałem program który ma za zadanie włączyć TIMER1 w tryb licznika z sygnałem taktującym na porcie PB1(T1). [syntax=asm].include "m162def.inc" .cseg .org 0 rjmp reset reset: cli ldi R16, low(ramend) out SPL, R16 ldi R16, high(ramend) out SPH,...
Po wprowadzeniu zmian według zaleceń kolegów sprawa ma się taka:na wyświetlaczu jest data: 06/27/040.Listing poprawionego programu poniżej: [syntax=basic4gl] $regfile = "m162def.dat" $crystal = 16000000 Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 , E = Porta.1 , Rs = Porta.0 Config Sda = Portc.0...
A ja koledze radzę użyć typowych pamięci o dostępie równoległym, Trudno będzie kupić pamięć 64KB za to bez problemu trafisz 32 albo 128 KB za bardzo małe pieniądze. Do tego choćby atmega162 lub atmega64 i będziesz miał bardzo "przyjemny" dostęp do RAM-u. atmega64: 20,12zł atmega162: 13,93 zł atmega8: 6,51zł A mój budżet nie może przekroczyć 90zł. Dodano...
Witam Na wstępie chciałbym zaznaczyć iż jestem początkującym programistą i dlatego proszę o wyrozumiałość. Robię termometr na lampach nixie, ale nie działa mi poprawnie komunikacja z ds18b20 i ds1820. Problem polega na tym, że na lampach pokazuje się wartość -00.1 tak jak by wyjście czujnika było zwarte bezpośrednio z + , a nie jest . Czujnik jest podpięty...
A u mnie doklejenie dokładnie tego na początek mojego programu powoduje błąd: Compiling: main.c avr-gcc -c -mmcu=atmega162 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99 -MD -MP -MF .dep/main.o.d main.c -o main.o main.c:146: error:...
Witam, buduję sobie układzik, mający sterować diodą RGB (za pomocą PWM) na podstawie danych odebranych przez interfejs SPI (mikrokontroler działa jako SPI Slave). Napisałem program, w którym w nieskończonej pętli odbierane są 3 bajty, a w przerwaniu timera ustawiane jest odpowiednie wypełnienie dla diod. Jednak efekty działania programu są jakieś bezsensowne....
Przykładowy fragment kodu ze strony Atmela dotyczący obsługi USI jako TWI. Jak widać trzeba pogrupować "podobne" grupy układów i zdefiniować co tam jest potrzebne. #if defined(__AT90Mega169__) | defined(__ATmega169__) | \ defined(__AT90Mega165__) | defined(__ATmega165__) | \ defined(__ATmega325__) | defined(__ATmega3250__)...
Znalazłem, na '---------------------------------------... ' Connection a display Siemens S65 with marking Lph88 for Atmega162 '---------------------------------------... ' illumination display ( be carefull ). ' ' LCD AVR ' --- --- ' 1 /RS B4 ' 2 /Reset B3 ' 3 /CS B2 '...
wciśniej F1 i sobie poczytaj w helpie co znaczy cbi a co znaczy sbi zamiast org 0x0 wpisz org 0x30 Wpisując 1 do DDRx ustawiasz go na wyjscie, Wpisując 1 do PORTx ustawiasz stan wtysoki napisz taki program: include "m16def.inc" .org 0x30 rjmp START START: ldi r16,1 out DDRB,r16 ; ustawiasz PINB0 jako wyjscie petla: cbi PORTB,0 nop sbi PORTB,1 nop rjmp...
Witam Poddaje się... nie mam siły walczyć z tym dallasem. Wszystko wydaje się być zrobione dobrze. ow_reset działa - wykrywa dallasa, jak odłączę wywala, że brak. #define F_CPU 1000000UL // 1 MHz #include <avr/io.h> #include <stdio.h> #include <util/delay.h> #include <string.h> void delay_ms(int ms) { volatile long...
To zależy jaki prąd pobiera to tajemnicze urządzenie.
Makra dotyczące SlaveSelect, powinny wyglądać następująco: #define SS_NISKI() (PORTB &= ~0x04); //stan niski na SS #define SS_WYSOKI() (PORTB |= 0x04); //stan wysoki na SS 0x01 - odpowiadało by za PB0 0x02 - za PB1 0x04 - za PB2 - pełniący rolę SS 0x08 - za PB3 0x10 - za PB4 0x20 - za PB5 itd., itp.
Przykładowy program realizujący przedstawiony przeze mnie sposób. [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include "LCD.h" volatile unsigned int adcon = 0; ISR(TIMER0_OVF_vect) { static char st; if((st++)%2) { PORTB |= 1<<0; //pb0=0 PORTB &= ~(1<<1); //pb1=1 adcon = ADC; //odczyt...
Witam. Zaczynam przygodę z mikrokontrolerami i napotkałem pewien problem który nie wiem z czego wynika. W dokumentacji wyczytałem, że wartość początkowa rejestru RORTB wynosi 0. Napisałem krótki kod, żeby przyswoić sobie jak to wszytko działa: int main(void) { DDRB = 0xFF; DDRA = 0b00000000; while (1) { if(bit_is_set(PINA, PA1)) PORTB =0b00000001; else...
Czy masz sei()? Czy masz PORTB 0 jako wyjście zadeklarowane?
[syntax=program]#ifndef F_CPU #define F_CPU 16000000UL // 16 MHz clock speed #endif #include <avr/io.h> #include <util/delay.h> #define led_zielona (1<<PB0)//definicja zielonej diody dla PORTB0 #define led_zielona_on PORTB |=led_zielona //ustawiam bitO portuB w stan wysoki #define led_zielona_off PORTB &= ~led_zielona //ustawiam...
Witam. Po pierwsze należy ustawić port tak : Config Portb.2 = Output Led Alias PORTB.2 Następnie w pętli powinno być : Do Led = 0 Waitms 100 Led = 1 Waitms 100 Loop
Patrząc w Twój profil nie powinienem o to pytać, ale czasami warto: Czy na pewno diody na PORTB podłączyłeś we właściwym kierunku?
Zrobiłem na 3 linie : http://obrazki.elektroda.pl/4981835500_1... Config Spi = Soft , Din = Pinb.2 , Dout = Portb.1 , Ss = None , Clock = Portb.3 ss w bascomie na none. Teraz w symulacji nie działa. Spróbuję jeszcze raz z tym RC5 na Atmega, jak się nie uda to wrócę do tego, że użyję dwóch uC. Dzięki za pomoc, jutro dam znać jak mi poszło z...
Witam Mam dwa układy: nadajnik (ATMega88, MC145026), odbiornik (ATMega16L, MC145027). Narazie połączyłem MC145026 z MC145027 kablem. Piny przerwań INT0 i INT1 w ATMega16L mam już zajęte. Chcę wykorzystać przerwanie INT2. Napisałem programy i niestety coś jest nie tak. Odbiornik nie wykrywa przerwania. W nadajniku linie danych mam podłączone do pinów...
Na początek kawałek kodu: [code] TCCR0A = _BV(WGM01); TCCR0B = _BV(CS00) | _BV(CS02); OCR0A = 156; TIMSK0 = _BV(OCIE0A); ISR(TIMER0_COMPA_vect) { PORTB ^= _BV(1); // do pinu zapięta LED }[code] Procesorek ATmega168 taktowany kwarcem 16000000. Chcę zmusić timer aby generował przerwania z częstością około 100 Hz. Czy powyższe ustawienie jest poprawne?...
ATmega16A różni się od ATmega16 tylko parametrami a nie funkcjonalnościami. Dlatego dla kompilatora i programatora są to te same układy i dlatego mają tę samą sygnaturę. Chcę zrobić coś takiego: Przecież osiągnąłeś cel. Możesz teraz używać POWER_DIODE_PORT zamiast PORTB.
bascom portb attiny26 portb atmega128 portb
laptop toshiba bateria monitor philips włącza podłączenie telewizorów kablówka
Jak przywrócić radio w Toyota Auris 2008? Instrukcja resetu Najmocniejsza bateria do Samsunga Galaxy S10