Я новичок в Microchip PIC uC. У меня есть некоторый опыт работы с AVR, но несколько недель назад я решил узнать о PIC.
Ну проблема в следующем. Я пытаюсь сделать свою первую программу с двумя мигающими светодиодами, это очень просто. RA1 и RA2 мигают.
Когда я набираю код 1 и код 2, программа работает отлично. Код 1: работает нормально.
//Code 1. OK.
main(){
while(1){
__delay_ms(1000); //wait 1 second
PORTA |= 0b00000110; //RA1 & RA2 on
__delay_ms(1000); //wait 1 second
PORTA &= 0b00000000; //RA1 & RA2 off
}
}
Код 2: работает нормально.
//Code 2. OK
main(){
while(1){
__delay_ms(1000); //wait 1 second
PORTA |= (1 << 1) | (1 << 2); //RA1 & RA2 on
__delay_ms(1000); //wait 1 second
PORTA &= ~(1 << 1) & ~(1 << 2); //RA1 & RA2 off
}
}
Код 3: этот код не работает. Только 1 светодиодная вспышка. Я использую это с AVR, и код работает отлично. В чем проблема? Операция ИЛИ не должна влиять на работу RA1.
//Code 3. Don't work. Only RA2 flash.
main(){
while(1){
__delay_ms(1000); //wait 1 second
PORTA |= (1 << 1); //RA1 on
PORTA |= (1 << 2); //RA2 on
__delay_ms(1000); //wait 1 second
PORTA &= ~(1 << 1); //RA1 off
PORTA &= ~(1 << 2); //RA2 off
}
}
Спасибо большое за помощь.
С наилучшими пожеланиями