Jump to content

Recommended Posts

Добрый день.
Прошу помоши. Упорно не хочет читать единицу RB0. МК - PIC16F886. Для моделирования использую MPLABX+Proteus 8.4, язык ХС8 v1.33.

 

#include <xc.h>
/*#include "I2Cmay.h"
#include "LCD.h"
#include "Monitor.h"
#include "main.h"*/
#define _XTAL_FREQ (8000000)
#include <stdio.h>
#include <stdlib.h>

// CONFIG1
#pragma config FOSC = EXTRC_CLKOUT// Oscillator Selection bits (RC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled and can be enabled by SWDTEN bit of the WDTCON register)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF      // RE3/MCLR pin function select bit (RE3/MCLR pin function is digital input, MCLR internally tied to VDD)
#pragma config CP = OFF         // Code Protection bit (Program memory code protection is disabled)
#pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)
#pragma config BOREN = OFF      // Brown Out Reset Selection bits (BOR disabled)
#pragma config IESO = OFF       // Internal External Switchover bit (Internal/External Switchover mode is disabled)
#pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is enabled)
#pragma config LVP = OFF        // Low Voltage Programming Enable bit (RB3 pin has digital I/O, HV on MCLR must be used for programming)

// CONFIG2
#pragma config BOR4V = BOR40V   // Brown-out Reset Selection bit (Brown-out Reset set to 4.0V)
#pragma config WRT = OFF        // Flash Program Memory Self Write Enable bits (Write protection off)

void main(void) {
    unsigned int temp;
    //nastroyka ();
    TRISB=0b00000001;
    while(1){
        if (RB0==0){
            RB1=1;
            RB1=0;
        }
         NOP();
    }
}

Внешнея подтяжка к 5В, однако постоянно заходит на строки в условии. Состояние регистров ANSELH=0, CCP1CON=0, CM2CON1=2, IOCB=0, INTCON=1, TRISB=1. В чем проблема не понимаю, грешил на протеус, переустановил с 8.1 на 8.4 - не помогло.
Чего я не так делаю?

 

Share this post


Link to post
Share on other sites

ANSEL=0. Но только в даташите, не сказано что данный регистр влияет на работу порта В.

Share this post


Link to post
Share on other sites

Конденсаторы Panasonic. Часть 4. Полимеры – номенклатура

В заключительной, четвертой статье из цикла «Конденсаторы Panasonic» рассматриваются основные достоинства и особенности использования конденсаторов этого японского производителя на основе полимерной технологии. Главной конструктивной особенностью таких конденсаторов является полимерный материал, используемый в качестве проводящего слоя. Полимер обеспечивает конденсаторам высокую электрическую проводимость и пониженное эквивалентное сопротивление (ESR). Номинальная емкость и ESR отличается в данном случае высокой стабильностью во всем рабочем диапазоне температур. А повышенная емкость при низком ESR идеальна для решения задач шумоподавления и ограничения токовых паразитных импульсов в широком частотном диапазоне.

Читать статью

Posted (edited)
10 минут назад, Bugrim сказал:

ANSEL=0. Но только в даташите, не сказано что данный регистр влияет на работу порта В.

Кроме ANSEL есть ANSELH, в котором есть бит ANS12, вот он и управляет аналоговой функцией RB0/AN12.

Для вывода в RB0 достаточно сбросить в ноль оный бит и сбросить в ноль нулевой бит регистра TRISB.

Edited by my504

Share this post


Link to post
Share on other sites
                     

STM32G0 - средства противодействия угрозам безопасности

Результатом выполнения требований безопасности всегда является усложнение разрабатываемой системы. Особенно чувствительными эти расходы стали теперь, в процессе массового внедрения IoT. Обладая мощным набором инструментов информационной безопасности, микроконтроллеры STM32G0 производства STMicroelectronics, объединив в себе невысокую цену, энергоэффективность и расширенный арсенал встроенных аппаратных инструментов, способны обеспечить полную безопасность разрабатываемого устройства.

Подробнее...

Posted (edited)

Я не обратил внимания на потребность в чтении. 

А чем гарантируется высокий уровень на RB0?

Edited by my504

Share this post


Link to post
Share on other sites
Posted (edited)

Внешний подтягивающий резистор.

5c8b83786f3f6_.thumb.jpg.e5c3ed003ca5cb2895f589aa78935242.jpg

Edited by Bugrim

Share this post


Link to post
Share on other sites

Может все таки протеус глючит? Подскажите стабильную версию.

Share this post


Link to post
Share on other sites

Самая стабильная версия - это железо !
Что мешает проверить на реальном проце ?

Share this post


Link to post
Share on other sites

Проверит на самой стабильной версии - работает. Теперь стабильный протеус найти надо.

Share this post


Link to post
Share on other sites
Posted (edited)

Подскажите,а для чего помимо простого приоритета прерываний в количестве 8,еще и есть субприоритет прерываний в количестве 4?(Я конкретно указывал количество для pic32MX,там еще около 100 источников прерываний оказывается) Просто для более удобного разделения приоритетов или есть тайный смысл?

Edited by BiBOX

Share this post


Link to post
Share on other sites
В 17.03.2019 в 19:41, Bugrim сказал:

Проверит на самой стабильной версии - работает. Теперь стабильный протеус найти надо.

Не припомню что бы хоть какой нибудь протес симулировал с ошибкой или глючил для пик 12 16 18 было когда я усомнился но в итоги нашёл ошибку в коде

Share this post


Link to post
Share on other sites

То же по началу было плохое мнение о протеусе, но как всегда виновником оказался человеческий фактор и кривой код.

Share this post


Link to post
Share on other sites

привет. нужна помощь. в микропрограмах не понимаю нужно кориктировать и компилировать нашол инструкцию но ничего не получается.

делал по инструкции с сайта https://www.dropbox.com/s/h4g0k06w3kidu7c/Допомога новачкам або швидкий старт з MPLAB IDE.pdf?dl=0  не хочет компилироватся

---------------------------------------------------------------------- Debug build of project `C:\pic\spidometr\spid.mcp' started. Language tool versions: MPASMWIN.exe v5.30.01, mplink.exe v4.30.01, mplib.exe v4.49 Preprocessor symbol `__DEBUG' is defined. Mon Apr 15 18:27:00 2019 ---------------------------------------------------------------------- Очистка: Удаляю промежуточные и выходные файлы. Очистка: удалён файл "C:\pic\spidometr\spid.o". Очистка: удалён файл "C:\pic\spidometr\spid.err". Очистка: удалён файл "C:\pic\spidometr\spid.lst". Очистка: удалён файл "C:\pic\spidometr\spid.cof". Очистка: удалён файл "C:\pic\spidometr\spid.hex". Очистка: удалён файл "C:\pic\spidometr\spid.mcs". Очистка: готово. Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F873A "spid.asm" /l"spid.lst" /e"spid.err" /o"spid.o" /d__DEBUG=1 /c- Warning[207] C:\PIC\SPIDOMETR\SPID.ASM 166 : Found label after column 1. (SEG7) Message[302] C:\PIC\SPIDOMETR\SPID.ASM 282 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 286 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 290 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 294 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 300 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 304 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 308 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1066 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1070 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1072 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1076 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1120 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1128 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1132 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1134 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1138 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1142 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1144 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1146 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1150 : Register in operand not in bank 0.  Ensure that bank bits are correct. Error[113]   C:\PIC\SPIDOMETR\SPID.ASM 1232 : Symbol not previously defined (CHATOD) Halting build on first failure as requested. ---------------------------------------------------------------------- Debug build of project `C:\pic\spidometr\spid.mcp' failed. Language tool versions: MPASMWIN.exe v5.30.01, mplink.exe v4.30.01, mplib.exe v4.49 Preprocessor symbol `__DEBUG' is defined. Mon Apr 15 18:27:01 2019 ---------------------------------------------------------------------- BUILD FAILED

исходник во вложении кто поможет за небольшое вознаграждение

Исходник программы для спидометра-одометра.txt

Share this post


Link to post
Share on other sites

перед конфигом поставьте

Цитата

    errorlevel  -302              ; suppress message 302 from list file

и строка 1232 пытается вызвать несуществующую процедуру Chanod , есть ChAnod

Share this post


Link to post
Share on other sites

Здравствуйте.

Притащили посмотреть две платы управления.

На плате стоит 12F508. На его входе датчик вибрации, на выходе оптрон. Горелого ничего нет. Питание исправно.

Программатором PIC читается, содержимое на обеих платах одинаковое.

МК стоят в соккетах, третья нога каждого зачем-то отогнута.

Вопрос к опытным: существует ли дизассемлер к этому PIC, и если да, то какой попроще? Программа в МК маленькая, хотелось бы понять алгоритм.

 

 

 

 

Share this post


Link to post
Share on other sites

Может быть залочен? 

3 часа назад, ART_ME сказал:

содержимое на обеих платах одинаковое.

В студию оба.  

Share this post


Link to post
Share on other sites
4 часа назад, ART_ME сказал:

существует ли дизассемлер к этому PIC, и если да, то какой попроще?

Дизассемблер он и в Африке дизасемблер :) проще ассемблера ничего не бывает, ну если только перфокарты :) !

Да он наверно в единственном экземпляре, в ПИКовской среде разработки надо искать, если по аналогии с АВР-ми рассуждать попробуйте в их среде найти возможность запустить в симуляторе считанный файл hex, elf, ... какой там он у вас.

Share this post


Link to post
Share on other sites

считывай с расширением .HEX, инече в дизасме ничего не увидишь.

 

Share this post


Link to post
Share on other sites

Программатором нельзя скачать HEX, только бинарник.

Но я скачал конвертер, и получил приложенный файл.

Дизассемблер PIC поймет его? Спрашиваю потому, что HEX бывает разный (в отличие от BIN).

 

12F508-1.HEX

Share this post


Link to post
Share on other sites

это не хекс.... код генерируемый дисасмом не рабочий

56 минут назад, ART_ME сказал:

Программатором нельзя скачать HEX

а шо это за прогер для пыков не поддерживавший хекс????

Share this post


Link to post
Share on other sites
8 минут назад, IMXO сказал:

а шо это за прогер для пыков не поддерживавший хекс????

Это не прогер для пыков, это просто прогер. Который считывает и записывает бинарные файлы, в т.ч. и для некоторых пыков. 

Короче, качаю MPLAB.

 

Share this post


Link to post
Share on other sites

а смысл? как мне помнится мплаб тоже бантики не поддерживает.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Anton Bondarenko
      Всем привет
      Прошу не ругать, впервые подобный вопрос задаю.
      Хочу сделать прибор, который будет посылать сигнал, когда возле прибора будет проходить металлический предмет. 
      — угол отслеживания до 30° а лучше прямая линия, траектория
      — время реакции очень высокое до 100 мс
      — ширина проема в котором нужно сканировать от 10 до 20метров,
      — передача сигнала через вифи
      Может есть готовые решения, или отдельные компоненты.
      Подскажите пжл в каком направлении искать.
      Смотрел датчики движения, но главная проблема — время реакции.
      Спасибо
       
    • By denisovdenisvladimirovit
      Нуждаюсь в помощи! Задумал сделать лабораторный блок питания, регулируемый. 0 - 50... 55в, 10 - 15а постоянного тока. трансформатор с мостом + выдают где - то 54,5в. Подскажите схему стабилизированного регулятора напряжения, или подскажите по моей. В моей регулировка по первичной обмотки без стабилизации, вообще рабочая или нет. Я сам новичок, судите строго!!!

      I need help(помогите и объясните дуракУ) опечатался((( Простите...
    • By Sofia Vin
      Предлагаем проектную работу в Москве:
      Микроконтроллер STM32F103.
        
      Есть встроенный код с использованием функций библиотеки FreeRTOS, код имеет описанный протокол для связи с внешним миром.
        
      Необходимо проводить доработку кода под задачи программиста верхнего уровня и его тестирование в составе оборудования. 
      Работа в лаборатории (м.Университет) и удаленно. 
      Оплата по договоренности.
      Если Вы обладаете опытом схемотехнического проектирования и программирования микроконтроллеров, и Вас заинтересовала данная возможность, ждем Ваши отклики по контактным данным:
      8 (925) 023-60-02   Алексей
      E-mail: nassa@marathon.ru
       
    • By Антон Плюшкин
      В общем есть небольшая тривиальная задача - сделать свитюльку. Контроллер управляет светодиодиками, цвета меняются, людишки довольны.
      Схема проста: Attiny44a -> 2n3904 x3 -> RGB-светодиод.
      Собрал, протестил, всё норм, но!
      Как только в коде я использую функцию задержки - _delay_ms (util/delay.h) - контроллер повисает!
      #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { // Input/Output Ports initialization // Port A initialization // Function: Bit7=Out Bit6=Out Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(1<<DDA7) | (1<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); // State: Bit7=0 Bit6=0 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit3=In Bit2=Out Bit1=In Bit0=In DDRB=(0<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit3=T Bit2=0 Bit1=T Bit0=T PORTB=(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Phase correct PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Non-Inverted PWM // Timer Period: 0,031875 ms // Output Pulse(s): // OC0A Period: 0,031875 ms Width: 0 us // OC0B Period: 0,031875 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00); TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00); TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Ph. correct PWM top=0x00FF // OC1A output: Non-Inverted PWM // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: 0,031875 ms // Output Pulse(s): // OC1A Period: 0,031875 ms Width: 0 us // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0); // Timer/Counter 1 Interrupt(s) initialization TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1); // External Interrupt(s) initialization // INT0: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-11: Off MCUCR=(0<<ISC01) | (0<<ISC00); GIMSK=(0<<INT0) | (0<<PCIE1) | (0<<PCIE0); // USI initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=(0<<USISIE) | (0<<USIOIE) | (0<<USIWM1) | (0<<USIWM0) | (0<<USICS1) | (0<<USICS0) | (0<<USICLK) | (0<<USITC); // Analog Comparator initialization // Analog Comparator: Off // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); ADCSRB=(0<<ACME); // Digital input buffer on AIN0: On // Digital input buffer on AIN1: On DIDR0=(0<<ADC1D) | (0<<ADC2D); // ADC initialization // ADC disabled ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); unsigned char VL_OCR0A = 0, VL_OCR0B = 0, VL_OCR1A = 0; OCR0A = 0; OCR0B = 0; OCR1A = 0; while(1) { _delay_ms( 100 ); VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } } Т.е. если указать задержку в начале цикла, то светодиод не светится вообще.
      Если задержку убрать - светодиод немного подсвечивает всеми цветами.
      while(1) { _delay_ms( 100 ); // <--- ЗАДЕРЖКА --- VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } Где я накосячил?
      З.Ы.: Замечаний по поводу оптимизации кода, излишних переменных и п.р. прошу не писать - изощряюсь как могу ибо не пойму почему не работает
    • Guest Денис
      By Guest Денис
      В общем, есть такое чудо китайской техники (фото)
      Что оно может:
      1. Заряжаться через microUSB порт
      2. Кнопка вкл/выкл, она же переключает режимы
      3. 3 режима свечения светодиода (он светит разными цветами)
      Что я хочу сделать:
      1. Пункты 1 и 2 выше
      2. Разнообразить количество режимов, переливание статичный цвет и тд...
      Вопрос: как это сделать? что купить?

      P.S. К сожалению, в гугле не нашел подробной инструкции, а я в электронике я дуб дубом


  • Сообщения

    • Надо принимать во внимание, что измерения проводились в помещении не предназначенном для этих целей. В специально приспособленном помещении или на улице - АЧХ будет гораздо лучше. Для примера - АС  35 АС-012 “Radiotehnika S-90” воспроизводит 25Гц с завалом -15 дБ.
    • Я не об этих. Или какие-либо стандартные на 100 мкГ. Запаивать как можно ближе к панельке, не дальше, чем 5...7 мм. Именно.
    • Тут речь о дешевле/дороже не идет. Условно говоря два этапа: заработать на постройке условного тц и после  продать построенное. Оба эти этапа запускаются поверх ядра: сохранить вырученные средства разместив их на надежных счетах. Так вот это ядро -  оно самое главное. Никому в x не уперлось иметь деньги в БЗБ, и потому что отберут в любой момент и потому что хрен их куда трасферируешь. Поэтому офшор без вариантов. Ну и юридическая защита какая никакая.... уже пинком дверь не откроят.
    • @DrobyshevAlex , так а что, подсовываете яндексу картинку для поиска и он находит море подобных. А там уже смотрите ссылку и читаете. Например, по первой картинке таким путём можно выйти на сайт алибабы и посмотреть, как они торгуют тензодатчиками GML624 на 3 и 5kg - здесь Естественно, и других ссылок море...
    • Нет. Это обычный аналоговый резистивный тензодатчик балочного типа. Прогибается от веса - меняется сопротивление. На Али продаются готовые платки усилителя, чтобы подключать к АЦП, а в последнее время и со встроенным АЦП. Часто в комплекте с датчиком.
    • Это подпевала из его  команды, свой человек, имхо. Только мутноватый. Не выспался наверное.      
    • Безусловно. С неё даже если макияж смыть, может даже лучше получиться.   Не то, что эта нарисованная жуть с холодными глазками-щёлочками.  
  • Покупай!

×
×
  • Create New...