Это всё конечно хорошо, а секретной команды деления на ноль нигде не описано?
Это всё конечно хорошо, а секретной команды деления на ноль нигде не описано?
Код: Выделить всё
.. i2c_start();
*
00052: BSF 4C8.1
00054: NOP
00056: BSF 4C8.0
00058: BRA 005A
0005A: BCF 4C0.1
0005C: BCF 4C8.1
0005E: NOP
00060: BCF 4C0.0
00062: BCF 4C8.0Код: Выделить всё
incrementing of Timer0 (TMR0 and Prescaler) will also be inhibited 2 instruction cycles (TCY). So if the prescaler is configured as 2, then after a write to the TMR0 register TMR0 will not increment for 4 Timer0 clocks (Figure 11-3). After that, TMR0 will increment every prescaler number of clocks later.Код: Выделить всё
Дано: 16бит число 0x4321
Значение предделителя=период : макс разрядность предделителя
1) 4321:FF=43 (округлить до целого) ; FF - макс разрядность предделителя
(или 4321 >>8 = 43, надеюсь правильно обозначил сдвиг вправо на 8 разрядов, быстрее, но меньше точность)
2) У результата определить вес старшего единичного разряда
43 -> max^2 = 40 и взять следующий старший вес = 80 (не корите за корявость выражения)
Предделитель=0x80
Значение таймера=FF-период : предделитель
Кол-во циклов=4321:80=86 (округлить)
Значение TMR=FF-86=79, так как он считает от нуля
Итого имеем
T=preTMR*TMR
80*86=4300И возможные варианты решения проблемы:The actual physical state (voltage level) of a pin may be different from the value written to PORT register in certain instances. For example:
- When the output pin is connected to high inductance or capacitance loads.
- When the output pin is connected to LEDs without current limiting resistors.
- When the output pin drives a transistor without base resistor.
- When the output pin is shorted to ground.
Этим "delay" как раз и может стать NOP. Но это, повторюсь, справедливо лишь в некоторых случаях, особенно у начинающих :-D. Нормальная схемотехника позволит не прибегать к таким трюкам, это чисто для теории. У первых PIC была еще история связанная с конвеером, где мог потребоваться NOP:...
How to Solve this problem ?
1. Insert a delay after RB7 = 1 such that sufficient time is provided for the charging of capacitor.
...