Затем береш http://www.atmel.com/Images/c51asm_win_1-2.zip и компилируеш.
То же самое для вышеуказанного текста, только без компиляции и файл сохранить как *.txt а затем обозвать как *.hex
Для проверки и правки есть hiew32 (v6.86)
Вроде как надо у 128-й поставить режим внешнего тактирования.masmax писал(а):А вот 128 не стартует. Как правильно выставить fuse у 128 чтобы он работал в такой схеме?
Есть раздел Из Лап в Лапы — там за ваши деньги исполнят любой каприз. Вы думали, вам тут готовую прошивку сваяют задаром?Satane писал(а):Если хочешь чтото сделать, делай это сам!
Была подобная тема- нужно было реле включать в нужном порядке- можно добавить туда энкодер и все, led не сложно добавить.Сказать нечего! Если хочешь чтото сделать, делай это сам!
Осторожнее с подобными советами, человек неадекватно на них реагирует !К первой схеме еще можно добавить uln2003, чтобы включать реле.
Кстати uln2003 очень даже хороший вариант и не придется с транзюками мучаться (как на моей плате помеху дает при переключении), но я уже решил вопрос с моей задачей, индикацию применю на 155ИД3, ну а с инкодером придется помучатся, теперь надо опросить инкодер и на каждый шаг давать импульс 50мс меняется направление, меняется порт, вот какраз это будет вместо платы управления.Аlex писал(а):Осторожнее с подобными советами, человек неадекватно на них реагирует !К первой схеме еще можно добавить uln2003, чтобы включать реле.
Да это сборка транзюков в компактном корпусе и даже больше- еще и диоды для шунтирования индуктивной нагрузки.Satane писал(а): и не придется с транзюками мучаться (как на моей плате помеху дает при переключении),
Код: Выделить всё
#define D_pin 0
#define Strobe_pin 2
#define Clk_pin 1
#define PORT_OUT PORTB
#define _BV(x) (1<<(x))
void f_Clk(void) {
PORT_OUT|=_BV(Clk_pin);
PORT_OUT&=~_BV(Clk_pin);
}
void f_strobe(void) {
PORT_OUT|=_BV(Strobe_pin);
PORT_OUT&=~_BV(Strobe_pin);
}
void f_shift_reg(unsigned char gear) {
for (char i=0;i<=7;i++){
(gear&0x01)? PORT_OUT|=_BV(D_pin): PORT_OUT&=~_BV(D_pin);
f_Clk();
gear>>=1;
};//for
f_strobe();
}//f_shift_reg
///куча кода
f_shift_reg(число);
Набрал. Посмотрите, плиз, файликBOB51 писал(а):Береш текстовой редактор и набираешь коготками копию исходника.
Обозвал.То же самое для вышеуказанного текста, только без компиляции и файл сохранить как *.txt а затем обозвать как *.hex
Скачал 7.01, но не знаю как пользоваться.Для проверки и правки есть hiew32 (v6.86)
Так как отправляется все это хозяйство через аппаратный интерфейс (например UART), то флаг пустого буфера передатчика УАРТа и даст искомое.Ruslan-maniak писал(а): На флагах каких-нить или прерываниях?
Код: Выделить всё
void DMA1_Channel2_IRQHandler(void){//Завершение передачи по УАРТ3
USART_ClearFlag(USART3,USART_FLAG_TC);
while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET){};
DMA_ClearITPendingBit(DMA1_IT_TC2);
GPIO_ResetBits(USART3_EN_PORT, USART3_EN_PIN);
DMA_Cmd(USART3_TX_DMA, DISABLE);
}Честно говоря не увидел вопроса конкретного. Не собака, а производители так придумали.banyok писал(а):Где тут собака зарыта?
Наверное не нули, а просто свободное состояние (Hi-Z).banyok писал(а): А если в регистре TrisA прописать единицы то на ножках PortA нули, то-есть норм.