Skocz do zawartości

Anek40

Użytkownicy
  • Zawartość

    10
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralna

O Anek40

  • Ranga
    2/10

Ostatnio na profilu byli

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

  1. Na pinie 10 i 1 ,jest 4.70 Volt i to się waha raz w górę raz w dół. Udało mi się przez przypadek ,za pierwszym razem robiłem to przy włączonym komputerze kilka razy bez rezultatu. Zniechęcony wyłączyłem komputer poszedłem spać. Rano myślę spróbuje znowu,zwarłem styki 1 i 10 ,włączyłem komputer ,przy zwartych pinach dałem erase i się skasowało. Czyli chyba trzeba wyłączyć komputer z sieci około 220 Volt ,aby się powiodło. Mam nowy problem i proszę o pomoc,kilka miesięcy temu zablokowałem Attiny 2313A chyba poprzez danie fusybitów na wewnętrzny oscylator 128KHz podzielony wewnętrznym podziałem zegara przez 8. Czy można ją odblokować ,jak ?
  2. Chip chip Hura !!!! hura !!! udało się odblokowałem Attiny 2313A ,wielkie dziękiuję dla RFM i BananWszyscy. Atiyny się dała erastować i wgrać inny program. Za drugim razem zrobiłem to inaczej jak za 1 razem i być może dlatego się powiodło. I teraz pytanie czy ten program zablokował Attiny? Proszę o poradę jak to zrobić z Atmega 328P i Atmega 8A ,Attiny 13A
  3. Jak długo trzeba mieć złączone pin 1 z pin 10 Jak połączę pin 1 z pin 10 to programu nie ma , i nie daje się erasetować przy złączonych 1 i 10 i rozłączonych. Jak odłączę od siebie 1 i 10 to program znowu się pojawia i nie można go zmazać erasem.
  4. Program działa poprawnie , program nie chce się skasować (erase) ,Attiny 2313A niechce się erase . Program mkAVRCalculator ,nie wykrywa Attiny 2313A. Podaję obrazki co pokazuje Extreme burner i progisp. Który pin zewrzeć (jaki numer) i do czego ,do innego pinu ? (jaki numer) i zewrzeć na jak długo ?.
  5. Inne Attiny 2313A działają,boję się wgrać ten program do innej Attiny2313a i innych uC aby nie uwalił tak jak tą Attiny 2313A. Program na tej uwalonej Attiny działa,tylko nie da się skasować , Program mkAVR nie widzi tej Attiny. Gdzie można kupić programator programatora HV ,ile kosztuje. RFM napisał :" Jak został włączony DW " ,co to znaczy. RFM napisał :"Albo RST DISABLE": co to znaczy
  6. Wgrałem do Attiny 2313A poniższy kod ,gdy chciałem go skasować poleceniem erase nie skasował się ten kod,mimo kilku prób skasowania. Miałem to samo na Attiny 13A ,ale po kilku próbach dania erase,i wyłączenia włączenia komputera, program się skasował,odzyskałem tą Attiny13A. Czy da rady odblokować tą Attiny 2313A ? jak ? kod: #include <avr/io.h> #include <util/delay.h> #include <inttypes.h> #include <util/atomic.h> #define CLKDF_1 (0<<CLKPS3)|(0<<CLKPS2)|(0<<CLKPS1)|(0<<CLKPS0) #define CLKDF_2 (0<<CLKPS3)|(0<<CLKPS2)|(0<<CLKPS1)|(1<<CLKPS0) #define CLKDF_4 (0<<CLKPS3)|(0<<CLKPS2)|(1<<CLKPS1)|(0<<CLKPS0) #define CLKDF_8 (0<<CLKPS3)|(0<<CLKPS2)|(1<<CLKPS1)|(1<<CLKPS0) #define CLKDF_16 (0<<CLKPS3)|(1<<CLKPS2)|(0<<CLKPS1)|(0<<CLKPS0) #define CLKDF_32 (0<<CLKPS3)|(1<<CLKPS2)|(0<<CLKPS1)|(1<<CLKPS0) #define CLKDF_64 (0<<CLKPS3)|(1<<CLKPS2)|(1<<CLKPS1)|(0<<CLKPS0) #define CLKDF_128 (0<<CLKPS3)|(1<<CLKPS2)|(1<<CLKPS1)|(1<<CLKPS0) #define CLKDF_256 (1<<CLKPS3)|(0<<CLKPS2)|(0<<CLKPS1)|(0<<CLKPS0) #define CLKDF_512 (1<<CLKPS3)|(0<<CLKPS2)|(0<<CLKPS1)|(0<<CLKPS0) #define CLKDF_1024 (1<<CLKPS3)|(0<<CLKPS2)|(0<<CLKPS1)|(0<<CLKPS0) #define CLKDF_2048 (1<<CLKPS3)|(0<<CLKPS2)|(0<<CLKPS1)|(0<<CLKPS0) void clock_prescaler_select(uint8_t division_factor); int main(void) { DDRB = (1<<PB3)|(1<<PB4); PORTB|=(1<<PB3); while(1) { clock_prescaler_select(CLKDF_1024); //ustaw preskaler F_CPU na 1024 //czyli praca z 4MHz for (uint8_t i=0;i<20;i++) { _delay_ms(4000); //okres migania diody LED ok. 64s PORTB ^= (1<<PB3)|(1<<PB4); } clock_prescaler_select(CLKDF_1024); //ustaw preskaler F_CPU na 8 //czyli praca z 1,2MHz for (uint8_t i=0;i<20;i++) { _delay_ms(4000); //Okres migania diody LED ok. 64s PORTB ^= (1<<PB3)|(1<<PB4); } } } void clock_prescaler_select(uint8_t division_factor) { ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { CLKPR = (1<<CLKPCE); CLKPR = division_factor; } }
  7. Takie mi wyszło dissasembly kodu w j.C skompilowałem na AVR 5.1 , drugi kod w ASM działa na uC. Jak w drugim kodzie zmieniać wartość delay. chodzi mi o zmniejszenie kodu w ASM ,napisanie go inaczej jak wyszło z dissasembly kodu w j.C. ------------------------------------------------------------------------------------------- plik lss A tu plik lss DELAY 1 C.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn 0 .text 00000064 00000000 00000000 00000054 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .stab 000006b4 00000000 00000000 000000b8 2**2 CONTENTS, READONLY, DEBUGGING 2 .stabstr 00000090 00000000 00000000 0000076c 2**0 CONTENTS, READONLY, DEBUGGING 3 .debug_aranges 00000020 00000000 00000000 000007fc 2**0 CONTENTS, READONLY, DEBUGGING 4 .debug_pubnames 0000001b 00000000 00000000 0000081c 2**0 CONTENTS, READONLY, DEBUGGING 5 .debug_info 0000014a 00000000 00000000 00000837 2**0 CONTENTS, READONLY, DEBUGGING 6 .debug_abbrev 000000f3 00000000 00000000 00000981 2**0 CONTENTS, READONLY, DEBUGGING 7 .debug_line 000001bd 00000000 00000000 00000a74 2**0 CONTENTS, READONLY, DEBUGGING 8 .debug_frame 00000020 00000000 00000000 00000c34 2**2 CONTENTS, READONLY, DEBUGGING 9 .debug_str 00000110 00000000 00000000 00000c54 2**0 CONTENTS, READONLY, DEBUGGING 10 .debug_pubtypes 0000002b 00000000 00000000 00000d64 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 00000000 <__vectors>: 0: 14 c0 rjmp .+40 ; 0x2a <__ctors_end> 2: 19 c0 rjmp .+50 ; 0x36 <__bad_interrupt> 4: 18 c0 rjmp .+48 ; 0x36 <__bad_interrupt> 6: 17 c0 rjmp .+46 ; 0x36 <__bad_interrupt> 8: 16 c0 rjmp .+44 ; 0x36 <__bad_interrupt> a: 15 c0 rjmp .+42 ; 0x36 <__bad_interrupt> c: 14 c0 rjmp .+40 ; 0x36 <__bad_interrupt> e: 13 c0 rjmp .+38 ; 0x36 <__bad_interrupt> 10: 12 c0 rjmp .+36 ; 0x36 <__bad_interrupt> 12: 11 c0 rjmp .+34 ; 0x36 <__bad_interrupt> 14: 10 c0 rjmp .+32 ; 0x36 <__bad_interrupt> 16: 0f c0 rjmp .+30 ; 0x36 <__bad_interrupt> 18: 0e c0 rjmp .+28 ; 0x36 <__bad_interrupt> 1a: 0d c0 rjmp .+26 ; 0x36 <__bad_interrupt> 1c: 0c c0 rjmp .+24 ; 0x36 <__bad_interrupt> 1e: 0b c0 rjmp .+22 ; 0x36 <__bad_interrupt> 20: 0a c0 rjmp .+20 ; 0x36 <__bad_interrupt> 22: 09 c0 rjmp .+18 ; 0x36 <__bad_interrupt> 24: 08 c0 rjmp .+16 ; 0x36 <__bad_interrupt> 26: 07 c0 rjmp .+14 ; 0x36 <__bad_interrupt> 28: 06 c0 rjmp .+12 ; 0x36 <__bad_interrupt> 0000002a <__ctors_end>: 2a: 11 24 eor r1, r1 2c: 1f be out 0x3f, r1 ; 63 2e: cf ed ldi r28, 0xDF ; 223 30: cd bf out 0x3d, r28 ; 61 32: 02 d0 rcall .+4 ; 0x38 <main> 34: 15 c0 rjmp .+42 ; 0x60 <_exit> 00000036 <__bad_interrupt>: 36: e4 cf rjmp .-56 ; 0x0 <__vectors> 00000038 <main>: #include <avr/io.h> #include <util/delay.h> main() { DDRB = (1<<PB3)|(1<<PB4); 38: 88 e1 ldi r24, 0x18 ; 24 3a: 87 bb out 0x17, r24 ; 23 PORTB|=(1<<PB3); 3c: c3 9a sbi 0x18, 3 ; 24 while(1) { PORTB ^= (1<<PB3)|(1<<PB4); 3e: 98 e1 ldi r25, 0x18 ; 24 40: 88 b3 in r24, 0x18 ; 24 42: 89 27 eor r24, r25 44: 88 bb out 0x18, r24 ; 24 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); 46: 24 e5 ldi r18, 0x54 ; 84 48: 35 e8 ldi r19, 0x85 ; 133 4a: 45 e4 ldi r20, 0x45 ; 69 4c: 51 e0 ldi r21, 0x01 ; 1 4e: 21 50 subi r18, 0x01 ; 1 50: 30 40 sbci r19, 0x00 ; 0 52: 40 40 sbci r20, 0x00 ; 0 54: 50 40 sbci r21, 0x00 ; 0 56: d9 f7 brne .-10 ; 0x4e <__SREG__+0xf> 58: 00 c0 rjmp .+0 ; 0x5a <__SREG__+0x1b> 5a: 00 c0 rjmp .+0 ; 0x5c <__SREG__+0x1d> 5c: 00 00 nop 5e: f0 cf rjmp .-32 ; 0x40 <__SREG__+0x1> 00000060 <_exit>: 60: f8 94 cli 00000062 <__stop_program>: 62: ff cf rjmp .-2 ; 0x62 <__stop_program> .NOLIST .INCLUDE "TN2313ADEF.INC" ; kwarc16 MHz ,64/64 sejkund RJMP PC+0x0015 RJMP PC+0x001A RJMP PC+0x0019 RJMP PC+0x0018 RJMP PC+0x0017 RJMP PC+0x0016 RJMP PC+0x0015 RJMP PC+0x0014 RJMP PC+0x0013 RJMP PC+0x0012 RJMP PC+0x0011 RJMP PC+0x0010 RJMP PC+0x000F RJMP PC+0x000E RJMP PC+0x000D RJMP PC+0x000C RJMP PC+0x000B RJMP PC+0x000A RJMP PC+0x0009 RJMP PC+0x0008 RJMP PC+0x0007 CLR R1 OUT 0x3F,R1 LDI R28,0xDF OUT 0x3D,R28 RCALL PC+0x0003 RJMP PC+0x0016 RJMP PC-0x001B LDI R24,0x18 OUT 0x17,R24 SBI 0x18,3 LDI R25,0x18 IN R24,0x18 EOR R24,R25 OUT 0x18,R24 LDI R18,0x54 LDI R19,0x85 LDI R20,0x45 LDI R21,0x01 SUBI R18,0x01 SBCI R19,0x00 SBCI R20,0x00 SBCI R21,0x00 BRNE PC-0x04 RJMP PC+0x0001 RJMP PC+0x0001 NOP;No operation RJMP PC-0x000F CLI RJMP PC-0x0000
  8. .nolist .include "tn2313adef.inc"; kwarc16 MHz ,64/64 sekund .list .cseg .org 0 ;wyłączenie przerwań cli ;załadowanie adresu końca pamięci ldi R16, LOW(RAMEND) out SPL, R16 ;ustawienie kierunków transmisji, PB3 i PB4 jako wyjście sbi DDRB, 3 sbi DDRB, 4 main: nop nop ;ustawienie PB3 w wysoki stan logiczny sbi PORTB, 3 ;ustawienie PB4 w niski stan logiczny cbi PORTB, 4 ;wywołanie opóźnienia rcall delay ;ustawienie PB3w niski stan logiczny cbi PORTB, 3 ;ustawienie PB4 w wysoki stan logiczny sbi PORTB, 4 ;wywołanie opóźnienia rcall delay ;powrót do etykiety main rjmp main
  9. Jak w ASM napisać to: PORTB ^= (1<<PB3)|(1<<PB4); _delay_us(128000000);
  10. Witam Jak wyglądał by ten kod C w j.ASM kwarc 16 MHz ,Attiny 2313A -------------------------------------------------------------------------------------- #include <avr/io.h> #include <util/delay.h> main() { DDRB = (1<<PB3)|(1<<PB4); PORTB|=(1<<PB3); while(1) { PORTB ^= (1<<PB3)|(1<<PB4); _delay_us(128000000); } }
×
×
  • Utwórz nowe...