Skocz do zawartości

slon

Użytkownicy
  • Zawartość

    152
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    1

slon wygrał w ostatnim dniu 3 czerwca

slon ma najbardziej lubianą zawartość!

Reputacja

93 Bardzo dobra

O slon

  • Ranga
    5/10

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Dla zgodności z AS7 i dokumentacją DDRB = 1<< DDB1 | 1<< DDB0; if (!(timer1Copy == 0x00FF || timer1Copy == 0xFF00)) PORTB ^= 1<<PORTB0;
  2. @Karolus odpaliłem dzisiaj AS7 żeby zobaczyć jak to dokładnie wygląda. W external tools w polu command wklejasz: C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe poniżej w arguments -p m328p -c arduino -PCOM4 -b 57600 -D -v -Uflash:w:"$(ProjectDir)Debug\$(TargetName).hex":i -b 57600 będzie poprawne dla większości klonów z atmegą 328p -b 115200 dla orginalnego uno R3 (może inne też) Możesz sobie podejrzeć te wartości w : C:\Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt Wstaw poprawny numer portu com i daj znać czy działa. Zapomniałem o avrdude.conf. Aby to zadziałało skopiuj wspomniany plik avrdude.conf z C:\Program Files (x86)\Arduino\hardware\tools\avr\etc do C:\Program Files (x86)\Arduino\hardware\tools\avr\bin czyli tam gdzie jest avrdude.exe. W ten sposób nie będziesz musiał przekazywać parametru -C. Lub jak chcesz możesz go przekazać w polu arguments
  3. @atMegaTona jeśli piszesz do mnie to ja usbISP czy usbasp-clone? posiadam. Używam z progISP(przy zakupie programatora dostałem informację , że z avrdude nie jest kompatybilny) Jeśli chodzi o ilość miejsca przeznaczonego na bootloader to tak jak widać mam 4 opcje dla fusebitu BOOTSZ (tak też podaje reference manual). Czyli jak by nie patrzeć to i tak muszę zarezerwować przynajmniej 4 strony w pamięci flash chociaż bootloadera nie wgrywam. Więc jak to w zasadzie jest z tym oszczędzanie miejsca? O BLB NRWW i RWW tylko pobieżnie przeczytałem ale jakoś w całość mi się to nie ułożyło. Jak byś miał trochę czasu i chęci to opisz ja to dokładnie wygląda.
  4. Dla pewności sprawdziłem jak to działa w arduino-cli. arduino-cli upload -b arduino:avr:pro:cpu=16MHzatmega328 -p COM16 mysketch Konwerter mam z wyprowadzonym sygnałem DRT więc celowo go nie podpinałem. Za trzecim podejściem wgrałem kod przy ręcznym resetowaniu pro mini a więc stwierdzenie : jest nieprawdziwe. Rozwiązanie masz sprawdzone i możesz go użyć z dowolnym edytorem pod windows/linux.
  5. Ok skoro tak to najprościej zainstaluj arduino-cli. W AS7 odpalasz terminal kompilujesz i wgrywasz przez arduino-cli.
  6. czyli rozumiem, że wklejasz lub zaznaczasz w arduino IDE(external editor) kod, który piszesz w AS7 następnie kompilujesz i wgrywasz przez Arduino IDE? Czy przy tym konkretnym arduino pro mini za każdym razem jak naciśniesz reset program wgrywa się przez arduino IDE ? Czas jaki masz na wciśnięcie przycisku reset jest bodajże zależny od bootloadera (w arduinowym jest go naprawdę niewiele). CH340 posiada sygnał DTR tyle , że w tym konwerterze nie jest wyprowadzony (aczkolwiek można by go było wyprowadzić). Jeśli masz kilka sekund na wciśnięcie przycisku reset (ponoć w niektórych bootloaderach nawet około 5s) to spokojnie można obejść się bez DTR.
  7. Masz na myśli Arduino IDE? Co to za programator? Najlepiej pokarz (foto ,rysunek) jak to jest podłączone do arduino. Pewnie czytałeś wątek na forum pod tytułem "dlaczego arduino jest fajne". Ja na chwilę obecną korzystam z notepada++ oferuje naprawdę wiele możliwości. Kompilacja i upload też jest z poziomu notepada++(lub progISP do upload). Z Arduino IDE w zasadzie już nie korzystam od jakiegoś czasu. A atmelStudio nie przypadło mi do gustu. Notepad++ ma opcje , których niema w atmelStudio (Oczywiście działa to też w drugą stronę ).
  8. W zasadzie to procedurę przerwania można zapisać tak: ISR(TIMER1_COMPA_vect) { timer1 ^= 0xFFFF; } Działa zgodnie z założeniami. Nie pozostaje mi nic innego jak przyznać , że @Elvis i @ethanak mieli rację.
  9. @Gieneq u mnie w modelu 3A+ to nie rozwiązało problemu. Najlepiej zapoznać się z https://www.raspberrypi.org/documentation/configuration/config-txt/video.md wszystko jest ładnie opisane. Ja u siebie dodatkowo ustawiłem hdmi_group=1 hdmi_mode=31 oraz config_hdmi_boost=4 Bez tego nie było obrazu albo startowało mi w rozdzielczości VGA. Teraz jest ok.
  10. Można tak: czyli tak zwana kanapka Albo tak: Do tej płytki arduino nano też się zmieści ale będzie mniej miejsca na samej płytce (za samą atmegę zapłaciłem niecałe 10zł). Stykówka była w zestawie z shieldem, który jest wpięty w uno.
  11. Mając trochę wolnego czasu ponownie przeanalizowałem timer1 w reference manual . Miałem taką myśl , że gdyby odczyt z PINB nie odbywał się bezpośrednio po zmianie stanu PORTB w przerwaniu to może faktycznie wystarczyła by jedna linijka w ISR. #define F_CPU 8000000UL #include <util/atomic.h> #include <avr/io.h> #include <avr/interrupt.h> volatile uint16_t timer1=0x00FF; void timer1_init(){ // control register A. Toggle OC1A/PB1 TCCR1A = 0<< COM1A1 | 1<< COM1A0 | 0<< COM1B1 | 0<< COM1B0 | 0<< WGM11 | 0<< WGM10; // control register B. Prescaler set to 1024,WGM 4 TCCR1B = 0 << WGM13 | 1 << WGM12 | 1 << CS12 | 0 << CS11 | 1 << CS10; // Interrupt Mask Register. Enable output compare A interrupt TIMSK1 = 0<< ICIE1 | 0<< OCIE1B | 1<< OCIE1A | 0<< TOIE1; OCR1A = 780; //every interrupt around 100ms } int main(void) { DDRB = 1<< PB1 | 1<<PB0; timer1_init(); sei(); while(1) { uint16_t timer1Copy; //comment line below and look on PB0 ATOMIC_BLOCK(ATOMIC_FORCEON) { timer1Copy= timer1; } if (!(timer1Copy == 0x00FF || timer1Copy == 0xFF00)) PORTB ^= 1<<PB0; } return 0; } ISR(TIMER1_COMPA_vect) { timer1= ((PINB>>PB1) & 0x01) ? 0xFF00 : 0x00FF; } Kod działa analogicznie jak poprzedni. Zmienione jedynie numery pinów, taktowanie procka (sama atmega328p na płytce stykowej) oraz tryb WGM na 4 z 12.
  12. @Chev mógł byś napisać czego używasz do programowania stm8? winIDEA czy coś innego?
  13. @danieleque dobrze by jeszcze było, żebyś sprawdził jaką atmegę masz w tym klonie nano. Ja mam klona nano z atmegą 168. Odczytaj model z procka i napisz co tam dokładnie jest. Co do arduino ISP to ja raczej w tym ci nie pomogę też jestem początkujący . A do programowania AVR kuiłem ostatnio programator ISP (tak jakoś ma napisane) .W lokalnym sklepie był dostępny za 25zł i nawet ma obudowę . Kupiłem atmegę 328p-u(to jakieś nowe oznaczenia microchipa) pobrałem program ProgISP i mogę powiedzieć , że działa. Fusebity można odczytywać/ustawiać i diodą też można migać bez bootloadera .
  14. Programowanie klona nano (overriding boud rate 57600) w arduino-cli: arduino-cli -b arduino:avr:nano:cpu=atmega328old -p COMx plik wybierając sam płytkę arduino:avr:nano (domyślny overridign baud rate jest ustawiony na 115200)
×
×
  • Utwórz nowe...